在我的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组件效果?
答案 0 :(得分:0)
因为您在selectmenu中更改了smsTrafficBean.page的值,然后由滚动条读取?