我在使用jstl遍历集合的时候报了这个异常,不知道怎么解决
遍历的代码是这些
<c:forEach var="classroom" items="${result}">
<tr>
<td>
${classroom.classroomId }
</td>
<td>
${classroom.roomName }
</td>
<td>
${classroom.capacity }
</td>
<td>
${classroom.description }
</td>
<td></td>
</tr>
</c:forEach>
是通过重写SimpleFormController的referenceData(HttpServletRequest request)方法初始化result参数的
protected Map referenceData(HttpServletRequest request) throws Exception{
QueryResult<Classroom> result = classroomService.findClassrooms(1);
System.out.println(result);
return new ModelMap().addObject("result", result.getResult());
}
结果报了异常
javax.servlet.ServletException: javax/el/ValueExpression
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:273)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:240)
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:252)
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1173)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:901)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
如果直接用EL表达式输出result,像${result}这样而不是循环,能正确输出集合内的数据:
[[classroomId:103,roomName:信工101,capacity:120,description:多媒体教室], [classroomId:104,roomName:信工102,capacity:120,description:多媒体教室], [classroomId:105,roomName:信工103,capacity:120,description:多媒体教室], [classroomId:106,roomName:信工104,capacity:120,description:多媒体教室], [classroomId:107,roomName:信工105,capacity:60,description:多媒体教室]]
为什么一用<c:forEach>就出错了呢?