2011-06-21 58 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