0

在我的 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 组件效果?

4

1 回答 1

0

因为您正在更改选择菜单中 smsTrafficBean.page 的值,然后滚动条会读取该值?

于 2009-09-30T17:24:24.820 回答