gpt4 book ai didi

java - jsp (jSTL 1.2) - 从 java 列表中设置变量

转载 作者:行者123 更新时间:2023-11-30 03:04:55 28 4
gpt4 key购买 nike

(我使用的是 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、空等时的异常处理

最佳答案

您无需复制该列表。您需要设置的只是 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}

关于java - jsp (jSTL 1.2) - 从 java 列表中设置变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35033667/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com