必要なときに何らかの方法で ap:selectOneRadio が強調表示されるようにしたいのですが、何も選択されていません。現在、ページの上部にエラー メッセージが追加されますが、エラー クラスはどのコンポーネントにも追加されません。これにより、多くの入力がある場合に、ユーザーが問題を見つけることがより困難になります。
編集:例に追加情報を追加
例
<div class="options-item r">
<fieldset class="default-radio">
<legend for="default_radio_id" class="legend-txt">
<span class="required c">*</span>#{msg['label.legend']}
</legend>
<p:selectOneRadio id="default_radio_id"
label="#{msg['label']}" required="true"
layout="custom"
value="#{bean.value.defaultIsFalse}">
<f:selectItem itemLabel="#{msg['label.option1']}"
itemValue="#{true}"/>
<f:selectItem itemLabel="#{msg['label.option2']}"
itemValue="#{true}"/>
</p:selectOneRadio>
<h:panelGrid styleClass="some_class another_radio_class" columns="4">
<p:radioButton id="opt1aa" for="default_radio_id" itemIndex="0"/>
<h:outputLabel styleClass="txt" for="opt1aa"
value="#{msg['label.option1']}"/>
<p:radioButton id="opt1bb" for="default_radio_id" itemIndex="1"/>
<h:outputLabel styleClass="txt" for="opt1bb"
value="#{msg['label.option2']}"/>
</h:panelGrid>
<!-- some other non relevant things? -->
</fieldset>
</div>
私はprimefaces 3.5を使用しています
「ui-state-error」などのある種のエラー クラスが無線選択に追加されることを確認する方法はありますか? または、欠落している無線選択を識別するために使用される他のパターンがありますか?
Edit2: ソリューションの追加の Bean 定義を追加
知らない人のために説明すると、これは、ソリューションを機能させるために Bean 定義に加える必要がある種類の変更です。
private UIInput radioButton;
public UIInput getRadioButton() {
return radioButton;
}
public void setRadioButton(UIInput radioButton) {
this.radioButton = radioButton;
}
Edit3: Edit2 にコメントを追加し、ソリューションを完成させました
バインディングをラッチするために、既存のバッキング Bean で UIInput を定義する必要がないことがわかりました。Bean 自体から既存の Bean にアクセスする必要がある場合は、既存の Bean の 1 つだけを編集する必要があります。
解決:
<div class="options-item r">
<fieldset class="default-radio">
<legend for="default_radio_id" class="legend-txt">
<span class="required c">*</span>#{msg['label.legend']}
</legend>
<p:selectOneRadio id="default_radio_id" binding="#{anyUnusedBeanName}"
label="#{msg['label']}" required="true"
layout="custom"
value="#{bean.value.defaultIsFalse}">
<f:selectItem itemLabel="#{msg['label.option1']}"
itemValue="#{true}"/>
<f:selectItem itemLabel="#{msg['label.option2']}"
itemValue="#{true}"/>
</p:selectOneRadio>
<h:panelGrid styleClass="some_class another_radio_class #{anyUnusedBeanName.valid ? '' : 'ui-state-error'}" columns="4">
<p:radioButton id="opt1aa" for="default_radio_id" itemIndex="0"/>
<h:outputLabel styleClass="txt" for="opt1aa"
value="#{msg['label.option1']}"/>
<p:radioButton id="opt1bb" for="default_radio_id" itemIndex="1"/>
<h:outputLabel styleClass="txt" for="opt1bb"
value="#{msg['label.option2']}"/>
</h:panelGrid>
<!-- some other non relevant things? -->
</fieldset>
</div>