[英]jsp (jstl 1.2) - set a variable from a java list
(我正在使用jstl 1.2版和Java 6)
我正在使用一些在其jsp页面中具有某些逻辑的旧代码,除了这些,我现在还需要遍历数据列表,匹配某些内容,然后将变量设置为列表值(在这种情况下为ArrayList)。 我需要这样做的原因是,然后遍历以后在jsp文件中找到的列表。
这是到目前为止的代码片段,但是不起作用:
<c:set var="listOfChildData" value="${[]}" scope="page"/>
<c:forEach items="${otherListOfData}" var="data">
<c:if test="${data.id == dataToMatchOn.id}">
<c:catch var="exception">${data.children}</c:catch>
<c:if test="${empty exception}">
<c:set var="listOfChildData" value="${data.children.toArray()}" scope="page"/>
</c:if>
</c:if>
</c:forEach>
我需要手动浏览列表中的每个项目并将其添加到listOfChildData
吗?
通读一遍,我发现的所有示例都是从头开始而不是从另一个变量创建数组变量。
如果归结为使用scriptlet,我可以在forEach
循环中执行此操作吗?
更新以包括data.children
为null,empty等时的异常处理。
您无需复制列表。 您需要设置的只是selectedItem,然后就可以使用它:
<c:forEach items="${otherListOfData}" var="data">
<c:if test="${data.id == dataToMatchOn.id}">
<c:set var="selectedItem" value="${data}/>
</c:if>
</c:forEach>
<p>From here on I can work with the selected item:</p>
${selectedItem.children}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.