コンポーネントに検証メッセージを追加しています。いくつかの入力があり、これらすべてのコンポーネントの上に宣言されている非表示の入力に接続されたバリデーターでそれらをまとめて検証しています。検証が失敗するたびに、同じメッセージが追加され続けることがわかります。
「 input x greater than input Y 」のようなメッセージが1 回表示されるはずなのに 2 回表示されます。次に、エラー値を修正すると、エラーはなくなりました。次に、意図的に同じエラー値をもう一度挿入します。その後、上記のエラー メッセージが3回表示されます。
以前のリクエストからメッセージをクリアするにはどうすればよいですか?
これが不自然な関連コードです。
if (all condition passes) {
for(UIInput:components){
input.setValid(true);
}
} else {
//Find out the first component that fails the validation and mark it red
FacesContext context = FacesContext.getCurrentInstance();
UIInput input= components.getInvalidComponent();
input.setValid(false);
context.addMessage(input.getClientId(context),message) ;
}
PS: JSF1.2 を使用しています