f:ajax: を使用して再レンダリングする複合コンポーネントの子コンポーネントを指定する方法はありますか?
<f:ajax render="compositeComponent:childComponent" />
私の簡単な実験では、それらを参照することはできないようですが、これを達成するための代替戦略があるかどうか疑問に思いました。
f:ajax: を使用して再レンダリングする複合コンポーネントの子コンポーネントを指定する方法はありますか?
<f:ajax render="compositeComponent:childComponent" />
私の簡単な実験では、それらを参照することはできないようですが、これを達成するための代替戦略があるかどうか疑問に思いました。
それはうまくいくはずです。これは完全にクライアント側です (つまり、JSF によって生成された JavaScript コードによって HTML DOM ツリー内に配置されます)。
間違ったクライアント ID を参照した可能性があります。ウェブブラウザでページを開き、右クリックしてソースを表示し、生成された HTML 要素をページ ソースで見つけて、そのid
属性を決定します。属性で指定するものは、それをrender
絶対的に (接頭辞で) または相対的に (親コンポーネント:
と比較して)参照する必要があります。UINamingContainer
もう 1 つの考えられる原因は、rendered
評価されたまったく同じ複合コンポーネントの子に属性を配置したことです。false
これにより、生成された HTML 要素が HTML DOM ツリーに完全に欠落しています。次に、次のようにrendered
、代わりにそのコンポーネントの子に属性を配置します。
<h:panelGroup id="childComponent">
<h:outputText value="#{bean.text}" rendered="#{bean.rendered}" />
</h:panelGroup>