我试图在我的JSP上循环使用Arraylist而没有任何运气。
我能够成功完成此循环,但只在尝试动态更改"时才会出现此错误。
我尝试了所有不同的方法,打开和关闭标签,尝试不同的外壳字符,即:单引号和双引号。
我得到的错误如下:
javax.el.MethodNotFoundException: Method not found: class java.util.ArrayList.getChartName()
at javax.el.Util.findWrapper(Util.java:351)
at javax.el.Util.findMethod(Util.java:214)
at javax.el.BeanELResolver.invoke(BeanELResolver.java:174)
这就是我的JSP的样子:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@include file="header.jsp" %>
<div id="content_main">
<c:if test="${not empty dashboardDetail}"></c:if>
<c:forEach var="dashboardDetailList" items="${dashboardDetail}">
<div id="${dashboardDetail.getChartName()}" style="width: 100%; height: 400px;"> </div>
</c:forEach>
</div>
<%@include file="footer.jsp" %>
答案 0 :(得分:2)
从你使用的名字中,你得到了错误的方法。
<c:forEach var="dashboardDetailList" items="${dashboardDetail}">
items
应该是列表,var
是当前元素。但是你已经在循环中正确地引用了dashboardDetail
。切换名称(对列表的每个引用):
<c:forEach var="dashboardDetail" items="${dashboardDetailList}">
发生错误是因为您现在已经在getChartName()
上调用了ArrayList
,并且该方法不存在。
答案 1 :(得分:1)
试试这个:
<c:forEach var="dashboardDetailObject" items="${dashboardDetail}">
<div id="${dashboardDetailObject.chartName}"
style="width: 100%; height: 400px;"></div>
</c:forEach>
dashboardDetailList
已更改为dashboardDetailObject