【问题标题】:How to execute a bean method inside foreach without button or link in jsf?如何在 jsf 中没有按钮或链接的情况下在 foreach 中执行 bean 方法?
【发布时间】:2016-09-18 09:47:37
【问题描述】:

我在 foreach 中循环一个包含字符串的列表,因此在每次迭代中,foreach 循环中的变量应该作为参数传递给在 foreach 循环中编写的 bean 方法。我搜索了许多站点,但到处都在找到解决方案,即没有命令按钮或链接就无法执行 bean 方法。是否有任何解决方案可以在没有任何命令按钮或链接的情况下执行 bean 方法。

<c:forEach var="name" items="#{bean.stringList}" 
 varStatus="loopCounter">

 <!--I have to execute the method here passing "name" as parameter-->

 </c:forEach>

【问题讨论】:

  • 为什么要在XHTML表单中做这个动作,如果你还想做,你需要走异步的方式。

标签: jsf foreach


【解决方案1】:

EL 2.2 开始,您可以使用参数调用非 getter 方法。所以你可以使用:

<c:forEach var="name" items="#{bean.stringList}" 
           varStatus="loopCounter">
    <c:set var="dummy" value="#{bean.yourMethod(name)}" />
</c:forEach>

但是,您很可能在这里尝试解决一些可以通过更优雅的方式完成的问题,例如PhaseListener@PostConstruct 方法、f:viewAction 等。

另见

【讨论】:

  • 谢谢,它工作正常,而且 工作正常。
  • 不客气。希望相关文章也有用。
猜你喜欢
  • 2012-07-24
  • 2022-09-29
  • 2020-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-11
  • 2012-09-23
  • 2012-01-17
相关资源
最近更新 更多