3つのフィールドを持つフォームがあります(簡単な例)。
最初のものはチェックボックスです。
<ice:selectBooleanCheckBox value="#{backingBean.bean.visible}" ID="checkbox1" partialSubmit="true" >
2つ目は
<ice:inputText ID="text1">
3つ目も
<ice:inputText ID="text2" required="true" validator="mycustomvalidator">
text1は、checkbox1がチェックされている場合にのみ表示されます。text2は必須フィールドであり、customvalidatorが設定されています。
したがって、#{backingBean.bean.visible}を使用する最初のアプローチは失敗しました。これは、text2が必要であり、text2フィールドが空のときに検証メッセージが表示されたためです(チェックボックスがクリックされた後)。検証エラーのため、表示プロパティが設定されるようにフォームが完全に送信されることはありませんでした(モデルの更新フェーズに到達することはありませんでした)。
また、selectBooleanCheckBoxにimmediate = "true"を使用しようとしましたが、required = "true"の検証メッセージが消えただけで、mycustomvalidatorの検証がトリガーされました。
だから私の質問:checkbox1がクリックされたときにのみtext1が表示されるようにするにはどうすればよいですか?ありがとう。