2011-06-21 57 views
0

我是JSTL的新手。我需要获取数据库的内容并将其显示在jsp中。我正在使用mvc来达到这个目的。我有servlet从表中检索数据并将其存储在bean类的arraylist中。我正在将arraylist转发到jsp页面,我正在使用forEach jstl来显示arraylist。但我收到错误 HTTP状态500 -在jsp中使用jstl显示类型bean的arraylist

类型异常报告

消息

描述服务器遇到一个内部错误()阻止其完成此请求。

例外

org.apache.jasper.JasperException:发生处理JSP页/Retrievedata.jsp例外,在线路89

86: 87: 88: 89: 90: 91 : 92:

堆栈跟踪: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:401) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service (JspServlet.java:260) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) stepack.ReqServlet.doPost(ReqServlet.java:60) javax.servlet.http.HttpServlet.service(的HttpServlet。的java:637) javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

根源

javax.servlet.ServletException:javax.servlet.jsp.JspException:而evalu时发生错误使用值“$ {current.Title}”自定义操作属性“值”:无法使用运算符“。”在类“stepack.Reqbean”的对象中找到“标题”的值。 (空) org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:862) org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791) org.apache.jsp.Retrievedata_jsp。 _jspService(Retrievedata_jsp.java:189) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.jasper .servlet.JspServletWrapper.service(JspServletWrapper.java:377) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260 ) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) stepac k.ReqServlet.doPost(ReqServlet.java:60) javax.servlet.http.HttpServlet.service(HttpServlet.java:637) javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

根本原因

javax.servlet.jsp.JspException:使用值“$ {current.Title}”评估自定义操作属性“值”时发生错误:无法在类“对象”对象中找到“标题” stepack.Reqbean“使用操作符”。“ (null) org.apache.taglibs.standard.lang.jstl.Evaluator.evaluate(Evaluator。java:131) org.apache.taglibs.standard.lang.jstl.Evaluator.evaluate(Evaluator.java:151) org.apache.taglibs.standard.lang.support.ExpressionEvaluatorManager.evaluate(ExpressionEvaluatorManager.java:97) org.apache.taglibs.standard.tag.el.core.ExpressionUtil.evalNotNull(ExpressionUtil.java:70) org.apache.taglibs.standard.tag.el.core.OutTag.evaluateExpressions(OutTag.java:121) org.apache.taglibs.standard.tag.el.core.OutTag.doStartTag(OutTag.java:79) org.apache.jsp.Retrievedata_jsp._jspx_meth_c_005fout_005f0(Retrievedata_jsp.java:254) org.apache.jsp.Retrievedata_jsp ._jspx_meth_c_005fforEach_005f0(Retrievedata_jsp.java:216) org.apache.jsp.Retrievedata_jsp._jspService(Retrievedata_jsp.java:150) org.apa che.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java: (JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) javax.servlet.http.HttpServlet.service (HttpServlet.java:717) stepack.ReqServlet.doPost(ReqServlet.java:60) javax.servlet.http.HttpServlet.service(HttpServlet.java:637) javax.servlet.http.HttpServlet.service(的HttpServlet。 java:717)

note注意根本原因的完整堆栈跟踪i可以在Apache Tomcat/6.0.29日志中找到。

的代码如下:在JSP <%@标签库前缀= “c” 的URI = “http://java.sun.com/jstl/core” %>

的Servlet:

公共类ReqServlet延伸的HttpServlet

{保护无效的doPost(HttpServletRequest的请求,HttpServletResponse的respo NSE)抛出的ServletException,IOException异常 {

try 
    { 

     ArrayList<Reqbean> row = new ArrayList<Reqbean>();  ......... 
    String q="SELECT "...........; 
    Statement stmt=conn.createStatement(); 
    ResultSet res=stmt.executeQuery(q); 
    boolean report=res.next(); 
    if(report) 
    { 
    do 
    { 
    Reqbean req=new Reqbean(); 
    // Selecting values from ResultSet and storing them in Reqbean class 
    req.setId(res.getString(1)); 
    req.setTitle(res.getString(2)); 

    // adding Reqbean object to ArrayList 
    row.add(req); 
    System.out.println("adding"); 
    }while(res.next()); 
    } 
    res.close(); 
    stmt.close(); 
    conn.close(); 

     request.setAttribute("row", row); 
    } 
    catch (Exception e) 
    { 
     request.setAttribute("error", "Retrieving rows failed."); 
     e.printStackTrace(); 
    } 
    request.getRequestDispatcher("Retrievedata.jsp").forward(request, response); 
} 
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
{ 

} 

}

Reqbean类: 公共类Reqbean { 公共字符串ID; public String Title; public void setId(String val) { this.Id = val; } public String getId() { return Id; } public void setTitle(String val) { this.Title = val; } public String getTitle() { return Title; }}

我已经放置的jstl.jar和standard.jar在WEB-INF/lib文件夹 请帮我.................

回答

0

${current.Title}(我假设是在JSP的地方)应该是${current.title}

而在你Reqbean:public String title;

+0

其工作.....感谢名单了很多 – user662175

+0

嗨,感谢我,你能接受我通过点击左边的'V'来回答。欢迎来到stackoverflow :) – Fortega