如何在jsf中没有按钮或链接的foreach中执行bean方法



我在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>

从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等。

参见

  • 如何实现在生命周期结束时运行的PhaseListener ?
  • 为什么使用@PostConstruct?
  • 何时使用f:viewAction/preenderview与PostConstruct?

相关内容

  • 没有找到相关文章

最新更新