我是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文件夹 请帮我.................
其工作.....感谢名单了很多 – user662175
嗨,感谢我,你能接受我通过点击左边的'V'来回答。欢迎来到stackoverflow :) – Fortega