你能使 id 动态 - <div id=[此处为动态字段]

Can you make the id dynamic - <div id=[dynamic field here]

我正在尝试在我的 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" %>

从你用过的名字来看,你把它们弄错了。

<c:forEach var="dashboardDetailList" items="${dashboardDetail}">

items 应该是列表,var 应该是当前元素。但是您在循环中正确地引用了 dashboardDetail 。切换名称(对于列表的每个引用):

<c:forEach var="dashboardDetail" items="${dashboardDetailList}">

发生错误是因为您现在在 ArrayList 上调用 getChartName(),而该方法不存在。

试试这个:

<c:forEach var="dashboardDetailObject" items="${dashboardDetail}">
   <div id="${dashboardDetailObject.chartName}" 
        style="width: 100%; height: 400px;"></div>
</c:forEach>

dashboardDetailList 改为 dashboardDetailObject