1

私は次のような複合コンポーネントの魔女を構築しました:

<composite:interface>
  <composite:attribute name="id" required="false" />
  <composite:attribute name="label" required="true" />
</composite:interface>

<composite:implementation>
  <h:panelGroup id="#{cc.attrs.id}">
    <fieldset class="fieldset"><legend>${cc.attrs.label}</legend></fieldset>
  </h:panelGroup>  
</composite:implementation>

コンポーネントは現在のラベルを正しく表示します。

<xyz:comp id="idMyComponent" label="#{someBean.text}"/>

...
<a4j:ajax ... render="idMyComponent" />
...

アクションが実行されると、何も起こりません。ただし、コンポーネントの ID に Postfix を追加すると、正常に動作します (以下を参照)。

...
<composite:implementation>
      <h:panelGroup id="#{cc.attrs.id}Label">
...

そして、接尾辞を使用してレンダリングで ID を定義します。

<xyz:comp id="idMyComponent" label="#{someBean.text}"/>

...
<a4j:ajax ... render="idMyComponentLabel" />
...

のIDに接尾辞を追加した場合にのみ機能する理由を説明できますかh:panelGroup?

4

1 に答える 1