繁体   English   中英

jsp(jstl 1.2)-从Java列表中设置一个变量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM