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