2012-03-19 2 views
5

は私がループしたいEL変数を使用して挿入したタグにIDを割り当てるfirstname_#{guest.uniqueID}は動的にIDを「ゲスト」の数の上に

javax.faces.FacesException - コンポーネント "firstname_1"が表示されません。 org.primefaces.component.message.MessageRenderer.encodeEnd(MessageRenderer.java:41)

で 私はループ内で定数を記述する場合、それは何の問題もなく動作し、また、私は変数ができることを確信しています私はそのループでそれを出力することができるので、解決されました。

jsfまたはprimefacesにこの変数を解決する方法を教えてください。

答えて

9

id属性でEL式を使用することはできません。

しかし、ui:repeatでIDの一意性を気にする必要はありません。 JSFがそれを行います。

<ui:repeat value="#{guestList}" var="guest"> 
    <p:inputText id="firstname" value="" label="Firstname" /> 
    <p:message for="firstname" /> 
</ui:repeat> 
+0

が答えてくれてありがとう、私は右のフィールドに対処するため、これらのIDを必要とするため、ゲスト数は私の問題の単なる単純化である:ちょうどIDを「固定」し、あなたのp:messageでそれを参照するあなたの入力フィールドを与えます私の裏の豆の中に。別の方法がない限り、別の方法で私のBeanに対処するには、これは私の問題の解決策ではありません。 (私は私の質問でそれをより明確にしようとしました) – devsnd

+0

なぜ、あなたがバッキングビーンでIDを必要とするのかは不明です。値属性を空白のままにしました。入力をバッキングBeanフィールドにバインドするために使用する必要があります。多分それはあなたが必要とするものですか? –

+0

あなたは正しいです!私はそれを得ました:とにかく私のすべての "ゲスト"を繰り返しているので、ループ内でバリュー・バインディングを動的に割り当てることができます。 (混乱して申し訳ありませんが、実際にはネストされたコンポジションでは問題が発生します) – devsnd

関連する問題