java - 嵌套 forEach 的 JSF JSTL 问题

标签 java jsf jstl

在嵌套的 foreach 中,访问同一个变量会返回不同的值。这发生在页面重新加载时,而不是第一次加载时。

<ui:composition
  xmlns="http://www.w3.org/1999/xhtml"
  (...)
  xmlns:c="http://java.sun.com/jstl/core"
  xmlns:h="http://java.sun.com/jsf/html">

  (...)

  <c:forEach items="#{controller.availableTransitions}" var="transition">
    <c:forEach items="#{transition.availableTransitions}" var="transitionItem">
      <h:outputText value="1_#{transitionItem.name} 2_#{transitionItem.name}" />
      3_#{transitionItem.name} 4_#{transitionItem.name}
    </c:forEach>
  </c:forEach>
</ui:composition>

页面重新加载后,transitionItem.Name 为 3 和 4 返回正确的值,为 1 和 2 返回不同的值。可能是 JSF-JSTL 集成问题?

最佳答案

我看到您正在使用 Facelets。

也许您可以尝试更换您的 <c:forEach>通过 <ui:repeat> ...

代码将变为:

<ui:composition
  xmlns="http://www.w3.org/1999/xhtml"
  (...)
  xmlns:c="http://java.sun.com/jstl/core"
  xmlns:h="http://java.sun.com/jsf/html">

  (...)

  <ui:repeat value="#{controller.availableTransitions}" var="transition">
    <ui:repeat value="#{transition.availableTransitions}" var="transitionItem">
      <h:outputText value="1_#{transitionItem.name} 2_#{transitionItem.name}" />
      3_#{transitionItem.name} 4_#{transitionItem.name}
    </ui:repeat>
  </ui:repeat>
</ui:composition>

关于java - 嵌套 forEach 的 JSF JSTL 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/619097/

相关文章:

jsp - 使用 ModelAndView 传递对象,然后使用 JSTL 解析

java - 如何在另一个java中复制字典

jsf - 如何在 <h :inputText>? 中禁用自动完成

regex - 在 JMeter 中使用 RegEx 或 XPath 提取第二个 CDATA 内容

jsp - websphere上的jSTL el函数错误

java - 未找到 JSP、EL 属性

java - 在本地主机上开发并在远程虚拟服务器上部署时的 Url 问题

java - java中队列的实现

java - 在这种情况下,java 堆会抖动到磁盘吗?

jsf - 如何在应用程序中使用新的@ClientWindowScoped注释?