私のJSFページには、ユーザーがギフトを希望するかどうかを選択できるHTML入力チェックボックスがあり<div>
、チェックボックス情報の下のセクションは、チェックボックスがチェックされている場合にのみ表示されます。チェックボックスをオンにすると、ユーザーはオプションを選択する必要があります (ドロップダウン メニューから、ドロップダウン メニューの初期値 = null)。ただし、チェックボックスがチェックされていない場合は選択する必要はありません。
したがって、ここに 2 つの条件があります。
A. チェックボックスがオン ( == div ビューが再生される)
- ユーザーがオプションを選択 -> OK
ユーザーは何も選択しません->必要なメッセージを表示したいのですが、これが私が行ったことです:
<p:message style="margin: 10px" id="messages7" for="npsScoreSupport" /> <h:selectOneMenu id="npsScoreSupport" value="#{npsBean.supportScore}" required="true" requiredMessage="Please select an option"> <f:selectItems value="#{npsBean.ratingPickList}" /> </h:selectOneMenu>
B. チェックボックスがオフ (== div ビューが非表示)
- ユーザーは何も選択しません->大丈夫ですが、必須=「true」があるため、ページではユーザーがオプションを選択する必要があります。
チェックボックスがチェックされたときにオプションが選択されていることを確認するためにrequireMessageが必要なので、チェックボックスの状態に基づいてrequireMessageを条件付きにすることができるかどうか疑問に思っていますか? (チェックボックスがオンの場合は必須、オフの場合は必須ではありません)何か提案はありますか?
============更新======================
だから今、チェックボックスを更新し、それをJAVAクラスの関数に接続しました(デフォルトではブール変数check = true)
<h:selectBooleanCheckbox class="someClass" value="#{someBean.check}" />
そして、ここに私のセレクターがあります
<h:selectOneMenu id="OptSelector" value="#{someBean.Opt}" required="#{someBean.check}" requiredMessage="Please select and option">
<f:selectItems value="#{npsBean.OptPickList}" />
チェックボックスがオフの場合でも送信に失敗しました。ブール値のチェックは決して変わらないようです。理由を知っている人はいますか?