がうまくいけば、タイトルはJSFループ再レンダリング
私たちが持っている問題は、我々はいくつかのJava一覧から入力コントロール(h:inputOneMenu
、h:inputText
など)の束を生成することです...あまりにも不可解ではありません。
これらの入力がオンザフライで検証されることを除いては、正常に動作します。ループ内でコントロールが生成されたため、reRenderアクションは基本的にフォーム全体またはa4j:outputPanel
という基本的に同じループ反復の周りにあります。
上記の2つのソリューションは技術的には機能しますが、すべてのページコントロールを再レンダリングするという厄介な副作用があり、ページが本当に厄介で不器用なように感じます。これを止めたいので、reRenderedを取得する唯一のコントロールは、ajaxの更新/検証を送信するコントロールです。
基本的にこれは、私たちのページのコードです:
<ui:repeat value="#{seam-outjected-list}" var="item">
<a4j:outputPanel selfRendered="true">
<h:inputText value=#{item.value}>
<a4j:support event="onblur" ajaxSingle="true" />
</h:inputText>
</a4j:outputPanel>
</ui:repeat>
私はちょうど項目に応じて、異なるコントロールをレンダリングするもののビットを残してきました。
私たちは現在、a4j:outputPanel
ソリューションを使用しているので、ループ生成コントロールが更新されるたびにすべてのコントロールが再レンダリングされます。
誰もが考えている場合は、事前におかげで。