rendered
基本的にケースステートメントとして使用しているとしましょう。入力欄にラベルとメッセージがあるのですが、場合によって欄自体を変えて欲しいです。そのような:
<p:inputText id="foo" value="#{myBean.params[paramKey]}"
rendered="#{paramIsInput}" />
<p:calendar id="foo" value="#{myBean.params[paramKey]}"
rendered="#{paramIsCalendar}" />
それを行うと、次のエラーが表示されます。java.lang.IllegalStateException: Component ID j_idt64:foo has already been found in the view.
回避策として、各パラメータ タイプに多数のラベル/メッセージを作成し、それらの ID を変更しました。しかし、これは私の質問をもたらします。ID を持つコンポーネントが 1 つだけ実際にレンダリングされる場合、jsf ファイルで複数のコンポーネントを定義することが問題になるのはなぜですか? それらをすべて同じIDで保持する方法はありますか?