2014-09-27 63 views
0

我想使用屬性而不是(索引)編號來訪問JSP頁面中的列表元素。使用屬性在jsp上訪問列表元素

第一:我得到物品清單在我的控制器:

List<Item> items; 

二:我把它作爲模型屬性到我的JSP頁面

第三:我訪問通過forEach標籤列表:

<c:forEach items="${roles}" var="role"> 

     ${role[1]} 

</c:forEach> 

正如你看到的,我用列的索引號,但實際上我想使用屬性名稱,而不是:

${role.code} 

但是,當我這樣做,我有一個例外:

java.lang.NumberFormatException: For input string: "code" 
java.lang.NumberFormatException.forInputString(NumberFormatException.java:48) 
java.lang.Integer.parseInt(Integer.java:449) 
java.lang.Integer.parseInt(Integer.java:499) 
javax.el.ArrayELResolver.coerce(ArrayELResolver.java:166) 
javax.el.ArrayELResolver.getValue(ArrayELResolver.java:46) 
org.apache.jasper.el.JasperELResolver.getValue(JasperELResolver.java:104) 
org.apache.el.parser.AstValue.getValue(AstValue.java:183) 
org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:185) 
org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:1026) 
org.apache.jsp.WEB_002dINF.pages.roles.roles_jsp._jspx_meth_c_005fforEach_005f0(roles_jsp.java:559) 
org.apache.jsp.WEB_002dINF.pages.roles.roles_jsp._jspService(roles_jsp.java:352) 
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432) 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) 
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:209) 
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:267) 
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1221) 
org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1005) 
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:952) 
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870) 
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961) 
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:621) 
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 

這個問題的原因是什麼?我如何準備使用屬性?

回答

0

我找到了解決方案。在我的情況下,我必須使用HQL而不是典型的SQL來將結果轉換爲真正的Java對象。

我測試了這個方法,它正在工作!