Model view controller 在jsp中使用jstl显示bean类型的arraylist

Model view controller 在jsp中使用jstl显示bean类型的arraylist,model-view-controller,Model View Controller,我是JSTL的新手。我需要获取数据库的内容并在jsp中显示它。我使用mvc就是为了这个目的。我有一个servlet,它从表中检索数据并将其存储在bean类类型的arraylist中。我正在将arraylist转发到jsp页面,在这里我使用forEach jstl显示arraylist。但我犯了一个错误 HTTP状态500- 类型异常报告 信息 说明服务器遇到内部错误(),无法完成此请求 例外情况 org.apache.jasper.jaspereException:在第89行处理JSP页面/Re

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

类型异常报告

信息

说明服务器遇到内部错误(),无法完成此请求

例外情况

org.apache.jasper.jaspereException:在第89行处理JSP页面/Retrievedata.JSP时发生异常

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) javaservlet.http.HttpServlet.service(HttpServlet.java:717) stepack.ReqServlet.doPost(ReqServlet.java:60) javaservlet.http.HttpServlet.service(HttpServlet.java:637) javaservlet.http.HttpServlet.service(HttpServlet.java:717)

根本原因

javax.servlet.ServletException:javax.servlet.jsp.jspeException:评估值为“${current.Title}”的自定义操作属性“value”时出错:在类“stepack.Reqbean”的对象中找不到“Title”的值。(null) org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:862) org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791) org.apache.jsp.Retrievedata\u jsp.\u jsp服务(Retrievedata\u jsp.java:189) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javaservlet.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) javaservlet.http.HttpServlet.service(HttpServlet.java:717) stepack.ReqServlet.doPost(ReqServlet.java:60) javaservlet.http.HttpServlet.service(HttpServlet.java:637) javaservlet.http.HttpServlet.service(HttpServlet.java:717)

根本原因

javax.servlet.jsp.JspException:使用值“${current.Title}”计算自定义操作属性“value”时出错:在类“stepack.Reqbean”的对象中找不到“Title”的值(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.expressionevaluationmanager.evaluate(expressionevaluationmanager.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\u jsp.\u jspx\u meth\u c\u 005fforEach\u 005f0(Retrievedata\u jsp.java:216) org.apache.jsp.Retrievedata\u jsp.\u jsp服务(Retrievedata\u jsp.java:150) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javaservlet.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) javaservlet.http.HttpServlet.service(HttpServlet.java:717) stepack.ReqServlet.doPost(ReqServlet.java:60) javaservlet.http.HttpServlet.service(HttpServlet.java:637) javaservlet.http.HttpServlet.service(HttpServlet.java:717)

注意,Apache Tomcat/6.0.29日志中提供了根本原因的完整堆栈跟踪

代码如下: 在jsp中

Servlet:

公共类ReqServlet扩展了HttpServlet

{受保护的void doPost(HttpServletRequest请求,HttpServletResponse响应)引发ServletException,IOException {

试试看
{   
ArrayList行=新建ArrayList()。。。。。。。。。
字符串q=“选择”。。。。。。。。。。。;
语句stmt=conn.createStatement();
ResultSet res=stmt.executeQuery(q);
布尔报告=res.next();
如果(报告)
{
做
{
Reqbean req=新的Reqbean();
//从ResultSet中选择值并将其存储在Reqbean类中
请求setId(res.getString(1));
请求设置标题(res.getString(2));
//将Reqbean对象添加到ArrayList
行添加(req);
系统输出打印项次(“添加”);
}while(res.next());
}
res.close();
stmt.close();
康涅狄格州关闭();
request.setAttribute(“行”,行);
} 
捕获(例外e)
{
setAttribute(“错误”,“检索行失败”);
e、 printStackTrace();
}
getRequestDispatcher(“Retrievedata.jsp”).forward(请求,响应);
}
受保护的void doGet(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException
{   
}
}

Reqbean类: 公共类Reqbean{ 公共字符串Id; 公共字符串标题; 公共void setId(字符串val) { Id=val; } 公共字符串getId() { 返回Id; } 公共void setTitle(字符串val) { this.Title=val; } 公共字符串getTitle() { 返回标题; } }

我已经放置了jstl.jar和standard.jar
    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
{   

}