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>
答案 0 :(得分:0)
作为一般规则,您应该避免JSF视图定义中的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 />
支持listener属性,而不支持action。