参数不能在JSF ajax标记中执行

时间:2014-11-13 01:39:17

标签: java ajax jsf

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>

1 个答案:

答案 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。