cc.attrs.controllerBean.goToPage('1')中的'1'无法执行。但是,如果我在没有 forEach 循环的情况下执行此操作,则 1 可以很好地执行。知道为什么吗?
<c:forEach begin="1" step="1" end="#{cc.attrs.controllerBean.noOfPages}" varStatus="status">
<li><h:commandLink value="#{status.index}">
<f:ajax execute="@form" render="searchResult" action="#{cc.attrs.controllerBean.goToPage('1')}" />
</h:commandLink></li>
</c:forEach>
最佳答案
作为一般规则,您应该避免在 JSF View 定义中使用 JSTL。您可以使用 <ui:repeat />
执行相同的操作标签,只需在支持 bean 中定义一个包含页数的整数列表:
<!-- pages is a list of integers that holds the number of pages -->
<ui:repeat value="#{cc.attrs.controllerBean.pages}" var="pageNumber">
<h:commandLink value="#{pageNumber}">
<!-- rest of your code -->
</h:commandLink>
</ui:repeat>
还请记住<f:ajax />
支持监听器属性,但不支持操作。
关于java - JSF ajax 标签中无法执行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26899912/