从Java代码中,我动态创建了几个会话对象。 例如:action_ 1 ,action_ 2 action_ 3 。
所有这些对象都包含项目列表。这些需要在每个循环的JSTL中循环。问题是我无法对JSP进行硬编码以获得会话对象名称,例如:
<c:forEach items="${action_1}" var="view_actio">
<c:out value="${view_actio.display_name}"></c:out>
</c:forEach>
我在另一个会话中有后缀编号&#34;查看&#34;可以${view.view_id}
访问。我已尝试以下列方式连接,
第一次尝试:
<c:forEach items="action_${view.view_id}" var="view_actio">
<c:out value="${view_actio.display_name}"></c:out>
</c:forEach>
错误:javax.el.PropertyNotFoundException:Property&#39; display_name&#39;不 在类型java.lang.String
上找到
第二次尝试:
<c:set var="s" scope="session" value="action_${view.view_id}"></c:set>
<c:out value="${s}"></c:out>
<c:forEach items="${s}" var="view_actio">
<c:out value="${view_actio.display_name}"></c:out>
</c:forEach>
Errorjavax.el.PropertyNotFoundException:Property&#39; display_name&#39;不 在类型java.lang.String
上找到
第3次尝试:
<c:forEach items="action_<c:out value="${view.view_name}"></c:out>" var="view_actio">
<c:out value="${view_actio.display_name}"></c:out>
</c:forEach>
错误:org.apache.jasper.JasperException:/WEB-INF/SMGT.jsp(第56行, column:47)未终止&lt; c:forEach标记
第4次尝试:
<c:set var="s" scope="session" value="action_${view.view_id}"></c:set>
<c:forEach items="${requestScope['s']}" var="view_actio">
<c:out value="${view_actio.display_name}"></c:out>
</c:forEach>
我不知道这是做什么的,我只是从其他答案中选择了这个。但是,这个既没有产生输出也没有给出错误。所以没用!
基本上,你明白了。我需要访问action_1
或action_2
中的元素。但我无法在JSP中形成它。我尝试了更疯狂的东西,但不能发布一切。
有谁知道如何让它发挥作用?