私のJSF+Richfacesアプリケーションでは、別のa4j:regionからajaxリクエストを実行すると、rich:datascrollerが実行されることを確認しました。これは私のコードです:
<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コンポーネントの効果を追加する理由を知っている人はいますか?