Richfaces DataScroller在不需要时执行

时间:2009-09-07 12:47:36

标签: jsf richfaces ajax4jsf datascroller

在我的JSF + Richfaces应用程序中,我观察到rich:datascroller在我从不同的a4j:region发出ajax请求时被执行。这是我的代码:

<jsfc:view>

    <a4j:region renderRegionOnly="true">
        <a4j:form>

            <a4j:region renderRegionOnly="true">

                <jsfh:selectOneMenu id="selectOneMerchant" value="#{smsTrafficBean.page}">

                    <a4j:support event="onchange" ajaxSingle="true"/>
                    <jsfc:selectItem itemValue="a" itemLabel="a"/>
                    <jsfc:selectItem itemValue="b" itemLabel="b"/>

                </jsfh:selectOneMenu>

            </a4j:region>


        </a4j:form>
    </a4j:region>


    <a4j:region renderRegionOnly="true">
        <jsfh:form>
            <a4j:region renderRegionOnly="true">

                <rich:datascroller id="scroll_1" for="sms" page="#{smsTrafficBean.page}"/>

                <rich:dataTable id="sms" var="s" value="#{smsTrafficBean.smsByFilter}">

                </rich:dataTable>
            </a4j:region>
        </jsfh:form>
    </a4j:region>

</jsfc:view>

当用户从selectOneMenu中选择项目时,会向服务器触发ajax请求。在生成对该请求的响应期间,执行smsTrafficBean.smsByFilter方法,这不是我所期望的。当我删除rich:datascroller一切正常。

当从不同的aj4:region触发ajax请求时,是否有人知道为什么在调用smsTrafficBean.smsByFilter时添加rich:datascroller组件效果?

1 个答案:

答案 0 :(得分:0)

因为您在selectmenu中更改了smsTrafficBean.page的值,然后由滚动条读取?