2012-03-21 10 views
2

私は次のコードを持っています。私はradioButtonとラベルをレンダリングしたいと思います。 selectOneRadioとselectItemによってレンダリングされたレイアウトのために、私は入力radioButtonsのためにプレーンなHTMLを使うことに決めました。onのh:outputLabelの属性に問題があります。repeat:

<h:panelGrid columns="6"> 
    <ui:repeat value="#{myBean.list}" var="item"> 
     <input id="#{item.innerList[0].id}" type="radio" name="radioItem" value="#{item.innerList[0].id}" /> 
     <h:outputLabel for="#{item.innerList[0].id}" value="#{item.label}" /> 
    </ui:repeat> 
</h:panelGrid> 

彼らはそれはのようなHTML内の属性をレンダリングoutputLabel使用するためのラベルを割り当てるしようとすると:

j_idt94:0:theidiassigned

このコードを含むタグ形式でprependIdフラグドキュメントには、outputLabelの他のタグを含む属性にこのようなフラグはありません。

+0

' 'の問題はどうなりますか? Tomahawk ''の解決策や回避策は間違いありません。http://stackoverflow.com/questions/6033955/jsf-more-customizable-selectmanycheckbox-and-selectoneradio/6034020#6034020も参照してください。 – BalusC

答えて

2

ui:repeatコンポーネントは、NamingContainerです。その子のclient identifierを制御します。

h:outputLabelfor属性は、通常、一致するコンポーネント識別子またはクライアント識別子を持つコンポーネントを検索します。

ので、このマークアップのために:

<foo:someNamingContainer id="x"> 
    <h:inputText id="foo" /> 
    <h:outputLabel for="foo" /> 
</foo:someNamingContainer> 

...ラベルは、識別子<label for="...:x:foo"を名前空間、マッチングを発するだろう。

ストレートXHTML <input>要素を使用しているため、一致するIDを持つ一致するJSFコンポーネントはありません。

XHTML <label>要素を代わりに使用することを検討してください。

関連する問題