2 つのコマンドリンク ボタンと 2 つの出力パネルを含む .xhtml があります。同じフォーム内のすべて。commandlink をクリックしたときに、どの出力パネルをレンダリングする必要があるかを明示的に指定する必要があるのはなぜですか? 何も指定されていない場合は、仕様からの次の説明に基づいてビュー全体を再構築するべきではありませんか (または) 私は物事を混合していますか?
同様action="navigation-rule"
に、同じビューでコンポーネントを更新したいときに本当に設定する必要がありますか?
Link controls are typically used to perform complete form submissions for data storing.
As a consequence, the <a4j:commandLink> component has the execute="@form" setting by default.
どんな入力でも大歓迎です。
参照用のコードは次のとおりです。
<h:form>
<div>
<a4j:outputPanel layout="block">
<!--Tab1 -->
<a4j:commandLink
id="homeTabLinkId"
value="Tab1"
actionListener="somelistener" render="contentDIVId">
<h:outputText value=""/>
</a4j:commandLink>
<!--Hosts Tab -->
<a4j:commandLink
id="hostsTabLinkId"
value="Tab2"
actionListener="anotherlistener" render="contentDIVId">
<h:outputText value=""/>
</a4j:commandLink>
</a4j:outputPanel>
</div>
<a4j:outputPanel layout="block" id="contentDIVId">
<!-- dynamically gets src based on tab click -->
<ui:include id="tabBodyPanel" src="elexpression"/>
</a4j:outputPanel>
<a4j:outputPanel layout="block" id="anotherdiv">
<h:outputText value="Inside second div"/>
</a4j:outputPanel>
</h:form>