我正在向我的组件添加验证消息。我有许多输入,然后我在附加到隐藏输入的验证器中一起验证它们,该隐藏输入在所有这些组件之上声明。我看到每次验证失败时,都会不断添加相同的消息。
像“输入 x 大于输入 Y ”这样的消息会显示两次,即使它应该显示一次。然后我更正错误值,它就消失了。接下来我故意再次插入相同的错误值。然后我会看到上面的错误信息三遍。
如何清除先前请求中的消息?
这是人为的相关代码:
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