1

@ViewScopedの問題により、faceletで c:foreach の代わりに ui:repeat を使用する必要があります。しかし、私はこの問題に遭遇し、誰かが回避策を提案できるかどうか疑問に思っています.

<ui:repeat value="#{someBean.idCodes}"
           var="led">
           <h:outputText id="mailbox-#{led}" 
               value="#{someBean.getSomeValue(led)}" />
</ui:repeat>

最初の問題は、 #{led} 参照は id 属性が評価されないことです。生成されたすべての id 属性は、単純に値「mailbox-」です。document.getElementById() で特定の要素インスタンスを見つける必要があるため、生成された id 属性が必要です。

回避策が見当たらないもう 1 つの問題は、ui:repeat 要素を h:panelGrid 要素内にラップすると、各メンバーに対して 1 つのセルではなく、1 つのセルを含むテーブルになってしまうことです。 idCode コレクション。

c:foreach を使用する場合、これらの問題はどちらも存在しませんが、そのタグを使用すると他の問題が発生します。助言がありますか?

4

1 に答える 1

1

javadoc で、id 属性の型が ValueExpression ではなく String であることに注意してください。そのため、 ${led} は評価されません。それぞれを div または span でラップし、その要素の id を ${led} ベースの式に設定することができます。

于 2011-05-18T18:47:34.380 に答える