JSF forEach循环值作为方法参数

时间:2017-02-23 15:53:49

标签: ajax jsf foreach

我希望我有一个简单的问题。

在我的JSF页面中,我使用forEach循环来创建按钮来浏览表格的页面。使用ajax我想根据点击的页面呈现表格。这看起来像这样:

<h:form>
    <c:forEach begin="1"
        end="#{pages%1 == 0 ? pages : 1+pages-(pages%1)}" step="1"
        var="page">
        <ui:param name="pageParam" value="#{page}"/>
        <h:commandButton value="#{page}">
            <f:ajax render="testing" listener="#{properties.setPage(page)}" />          
        </h:commandButton>
    </c:forEach>
    <h:outputText id="testing" value="#{properties.getPage()}" />
</h:form>

如您所见,我尝试在我的bean中设置page属性。但是当我单击按钮时,我得到一个异常,即找不到该方法(setPage将int作为参数,但&#34; page&#34;作为Byte传递 - &gt; Exception:[...] setPage( java.lang.Byte))。

所以问题是,如何将forEach中的页码作为整数传递?是否有可能将每个生成的数字传递给相关的ajax?

1 个答案:

答案 0 :(得分:0)

尝试类似的东西:

<c:forEach begin="1" end="#{pages%1 == 0 ? pages : 1+pages-(pages%1)}" step="1" var="page" varStatus="loop">
    <ui:param name="pageParam" value="#{page}"/>
        <h:commandButton value="#{page}">
            <f:ajax render="testing" listener="#{properties.setPage(#{loop.index})}" />          
        </h:commandButton>
</c:forEach>