向FacesContext.getCurrentInstance()添加错误.addMessage显示消息但不阻止处理

时间:2013-07-15 17:05:07

标签: jsf icefaces

我正在验证表单中下拉列表中选择的数据 - ice:selectOneMenu。在valueChangeListener上。我有验证,它会添加错误消息:

FacesContext.getCurrentInstance().addMessage(fieldId, 
    new FacesMessage(FacesMessage.SEVERITY_ERROR, msg, msg));

验证在Bean上运行,并且错误消息显示给用户,但是当单击“保存”命令按钮时,页面将继续确认页面,此时它将保留在捕获页面上,直到选择了正确的值为止下拉列表。

为什么页面会继续确认页面?

1 个答案:

答案 0 :(得分:1)

验证失败时,您必须抛出ValidatorException,以便可以将输入视为无效输入。这很可能是原因。而不是

FacesContext.getCurrentInstance().addMessage(fieldId,
                new FacesMessage(FacesMessage.SEVERITY_ERROR, msg, msg));

throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, msg, msg));