1

複合 JSF コンポーネントにリンクを作成します。

<h:link id="menu-abc" outcome="/abc" value="ABC" />

リンクがフォーム内にありません。ただし、レンダリングされた HTML コードを見ると、ID のプレフィックスとして動的に生成された ID があります。

<a id="j_idt33_menu-abg" name="j_idt33_abv" href="abc.xhtml">ABC</a>

この動的 ID の由来がわかりません。何か案は?

ps: 区切り文字を : から _ に変更しました

4

1 に答える 1

3

この症状は、実際にはカスタム コンポーネントがまったくなく、複合コンポーネントがあり、何らかの理由でNamingContainer区切り文字を から:に変更したことを示しています。_

複合コンポーネントはそれ自体でコンテナに名前を付け、すべての子の ID に独自の ID を付加します。単純な理由は、1 つのビューで複数回再利用できるからです。複合コンポーネントの独自の ID が先頭に追加されていない場合、コンポーネント ツリーで ID が重複することになります。

実際のカスタム コンポーネントでは、クライアント ID を完全に制御できます。

以下も参照してください。

于 2012-11-19T12:40:40.253 に答える