报错,For input String“name”,input输入的值能查询,但是input报错

报错,For input String“name”,input输入的值能查询,但是input报错

问题描述:

数据库的表名报错情况eclipse报错情况,但是这里可以看出了以及查询成功了,连查询的size为1都显示出来了
查询界面的input框
![下面就是后台 java查询数据库的代码,先提取input框里面的值,input的name=“liuyan”,这里先检查story表里面有没有这个小说名,然后再查询该小说留言表。]

 @RequestMapping(value="/liuyan")
public ModelAndView liuyan(@RequestParam(value="liuyan", required=false) String liuyan, 
        HttpSession httpSession){
    System.out.println(liuyan);
    String sql = "select * from story where sname = '"+liuyan+"'";
    System.out.println(sql);
    String viewname="";
    final int[] isExist = new int[1];
    isExist[0] = 0;
    jt.query(sql, new RowCallbackHandler(){
        public void processRow(ResultSet rs) throws SQLException {
            if (rs.isFirst()) {
                isExist[0]=1;
            }
        }
    });
    if(isExist[0]==1) {
        String sql1 ="select * from "+liuyan+" limit 0,1000";
        System.out.println(sql1);
          viewname = "liuyan";
            final List<liuyan>liuyans = new ArrayList<liuyan>();
            jt.query(sql1, new RowCallbackHandler(){
                public void processRow(ResultSet rs1) throws SQLException {
                    System.out.println(rs1.getFetchSize());
                    while (!rs1.isAfterLast()) {
                        liuyan liuyanss = new liuyan(rs1.getString(1),
                                                rs1.getInt(2),
                                                rs1.getString(3),
                                                rs1.getString(4));
                        liuyans.add(liuyanss);
                        System.out.println(liuyans);
                        rs1.next();
                    }
                }
            });
            httpSession.setAttribute("liuyan", liuyan);
            System.out.println(liuyans.size());
            ModelAndView mv = new ModelAndView(viewname);
            mv.addObject("liuyans", liuyans);
            return mv;
    } else {
        httpSession.setAttribute("liuyan", liuyan);
        viewname = "chaxun_failed";
        ModelAndView mv = new ModelAndView(viewname);
        mv.addObject("liuyan", liuyan);

        return mv;

    }
   }

${ liuyans.lname } 这个应该有问题吧,liuyans是个list,没有lname属性。parseInt可能是渲染标签带来的,最好是列一下第2个exception图的全部内容。

看看Exception的parseInt是哪里调用的,直接问题是你渲染的一个值被parseInt,但是string是"name"。问题可能是你传或取的值不对。

String sql1 ="select * from "+liuyan+" limit 0,1000"; 这是什么鬼

你可以看看在你转到mv视图里面把liuyans遍历出来的时候是不是正确的

jsp:

 <div id="c1" class="content">
        <form action="liuyan" method="post">
        <table>
        <tr>
        <td style="width:400px">留言信息</td>
        <td style="width:150px"></td>
        <td style="width:150px"></td>
        </tr>
                             查询小说留言:<input type="text" name="liuyan"/><input type="submit" style="float-left:50px" value="查询" />
        </table>
        </div>

java:

 @RequestMapping(value="/liuyan")
public ModelAndView liuyan(@RequestParam(value="liuyan", required=false) String liuyan, 
        HttpSession httpSession){
    System.out.println(liuyan);
    String sql = "select * from story where sname = '"+liuyan+"'";
    System.out.println(sql);
    String viewname="";
    final int[] isExist = new int[1];
    isExist[0] = 0;
    jt.query(sql, new RowCallbackHandler(){
        public void processRow(ResultSet rs) throws SQLException {
            if (rs.isFirst()) {
                isExist[0]=1;
            }
        }
    });
    if(isExist[0]==1) {
        String sql1 ="select * from "+liuyan+" limit 0,1000";
        System.out.println(sql1);
          viewname = "liuyan";
            final List<liuyan>liuyans = new ArrayList<liuyan>();
            jt.query(sql1, new RowCallbackHandler(){
                public void processRow(ResultSet rs1) throws SQLException {
                    System.out.println(rs1.getFetchSize());
                    while (!rs1.isAfterLast()) {
                        liuyan liuyanss = new liuyan(rs1.getString(1),
                                                rs1.getInt(2),
                                                rs1.getString(3),
                                                rs1.getString(4));
                        liuyans.add(liuyanss);
                        System.out.println(liuyans);
                        rs1.next();
                    }
                }
            });
            httpSession.setAttribute("liuyan", liuyan);
            System.out.println(liuyans.size());
            ModelAndView mv = new ModelAndView(viewname);
            mv.addObject("liuyans", liuyans);
            return mv;
    } else {
        httpSession.setAttribute("liuyan", liuyan);
        viewname = "chaxun_failed";
        ModelAndView mv = new ModelAndView(viewname);
        mv.addObject("liuyan", liuyan);

        return mv;

    }
   }

目的jsp页面:

 <%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
        <%@page isELIgnored="false" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<a href="admin">回到管理页面</a>
${ liuyans.lname }的热门留言:
<div class="link">      <table><tr><td>用户名</td><td>留言</td><td>电话号码</td><td></td></tr>
<c:forEach items="${liuyans}" var="item">
<tr><td>${ item.lname }</td><td><p>${ item.text }</p></td><td><a>${ item.lphone }</a></td><td><a herf="/liuyan/${item.id}">删除</a></td>
</tr>
</c:forEach>
</table></div>
</body>
</html>

把前面的那个${ liuyans. lname}删除后就是这样的报错

就只有目的jsp修改了,其他都没有改;下面是目的jsp修改后的代码

 <%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
    <%@page isELIgnored="false" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<a href="admin">回到管理页面</a>
的热门留言:
<div class="table" style="overflow:auto;height:300px" >
<table border="1px" bordercolor="red"><tr><td>用户名</td><td>留言</td><td>电话号码</td><td></td></tr>
<tr><td style="width:400px">小说名</td><td style="width:150px"></td></tr>
<c:forEach items="${liuyans}" var="item">
<tr><td>${ item.lname }</td><td><p>${ item.text }</p></td><td><a>${ item.lphone }</a></td><td><a herf="/liuyan/${item.id}">删除</a></td>
</tr>
</c:forEach>
</table></div>
</body>
</html>

这是被java后台引用的数据封装的包

 package com.cx.shixun.model;

public class liuyan {
           public String lname;
           public int id;
           public String text;
           public String lphone;
        public liuyan() {
            super();
            // TODO Auto-generated constructor stub
        }
        @Override
        protected Object clone() throws CloneNotSupportedException {
            // TODO Auto-generated method stub
            return super.clone();
        }
        @Override
        public boolean equals(Object obj) {
            // TODO Auto-generated method stub
            return super.equals(obj);
        }
        @Override
        protected void finalize() throws Throwable {
            // TODO Auto-generated method stub
            super.finalize();
        }
        @Override
        public int hashCode() {
            // TODO Auto-generated method stub
            return super.hashCode();
        }
        @Override
        public String toString() {
            // TODO Auto-generated method stub
            return super.toString();
        }
        public liuyan(String lname, int id, String text, String lphone) {
            super();
            this.lname = lname;
            this.id = id;
            this.text = text;
            this.lphone = lphone;
        }


}

第一个错误:

 HTTP Status 500 – Internal Server Error

Type Exception Report

Message An exception occurred processing JSP page [/WEB-INF/pages/liuyan.jsp] at line [17]

Description The server encountered an unexpected condition that prevented it from fulfilling the request.

Exception

org.apache.jasper.JasperException: An exception occurred processing JSP page [/WEB-INF/pages/liuyan.jsp] at line [17]

14: <div class="table" style="overflow:auto;height:300px" >
15: <table border="1px" bordercolor="red"><tr><td>鐢ㄦ埛鍚�</td><td>鐣欒█</td><td>鐢佃瘽鍙风爜</td><td></td></tr>
16: <c:forEach var="item" items="${ liuyans }">
17: <tr><td><p>${ item.lname }</p></td><td><p>${ item.text }</p></td><td><a>${ item.lphone }</a></td><td><a herf="/liuyan/${item.id}">鍒犻櫎</a></td>
18: </tr>
19: </c:forEach>
20: </table></div>


Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:588)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:481)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:168)
    org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:303)
    org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1243)
    org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1027)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:971)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:969)
    org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:871)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:845)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:121)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

Root Cause

javax.el.PropertyNotFoundException: Property [lname] not found on type [com.cx.shixun.model.liuyan]
    javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:260)
    javax.el.BeanELResolver$BeanProperties.access$300(BeanELResolver.java:212)
    javax.el.BeanELResolver.property(BeanELResolver.java:347)
    javax.el.BeanELResolver.getValue(BeanELResolver.java:92)
    org.apache.jasper.el.JasperELResolver.getValue(JasperELResolver.java:110)
    org.apache.el.parser.AstValue.getValue(AstValue.java:169)
    org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:184)
    org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:944)
    org.apache.jsp.WEB_002dINF.pages.liuyan_jsp._jspx_meth_c_005fforEach_005f0(liuyan_jsp.java:179)
    org.apache.jsp.WEB_002dINF.pages.liuyan_jsp._jspService(liuyan_jsp.java:133)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:443)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:168)
    org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:303)
    org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1243)
    org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1027)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:971)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:969)
    org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:871)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:845)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:121)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

Note The full stack trace of the root cause is available in the server logs.
Apache Tomcat/8.5.23

第二个错误:

 HTTP Status 500 – Internal Server Error
Type Exception Report

Message javax.el.PropertyNotFoundException: Property [lname] not found on type [com.cx.shixun.model.liuyan]

Description The server encountered an unexpected condition that prevented it from fulfilling the request.

Exception

org.apache.jasper.JasperException: javax.el.PropertyNotFoundException: Property [lname] not found on type [com.cx.shixun.model.liuyan]
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:565)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:481)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:168)
    org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:303)
    org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1243)
    org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1027)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:971)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:969)
    org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:871)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:845)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:121)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
Root Cause

javax.el.PropertyNotFoundException: Property [lname] not found on type [com.cx.shixun.model.liuyan]
    javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:260)
    javax.el.BeanELResolver$BeanProperties.access$300(BeanELResolver.java:212)
    javax.el.BeanELResolver.property(BeanELResolver.java:347)
    javax.el.BeanELResolver.getValue(BeanELResolver.java:92)
    org.apache.jasper.el.JasperELResolver.getValue(JasperELResolver.java:110)
    org.apache.el.parser.AstValue.getValue(AstValue.java:169)
    org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:184)
    org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:944)
    org.apache.jsp.WEB_002dINF.pages.liuyan_jsp._jspx_meth_c_005fforEach_005f0(liuyan_jsp.java:179)
    org.apache.jsp.WEB_002dINF.pages.liuyan_jsp._jspService(liuyan_jsp.java:133)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:443)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:168)
    org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:303)
    org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1243)
    org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1027)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:971)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:969)
    org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:871)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:845)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:121)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
Note The full stack trace of the root cause is available in the server logs.

Apache Tomcat/8.5.23