-1

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

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

验证在 Bean 上工作,错误消息会显示给用户,但是当单击“保存”命令按钮时,如果页面应该停留在捕获页面上,则会继续确认页面,直到在下拉列表中选择了正确的值。

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

4

1 回答 1

1

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

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

throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, msg, msg));
于 2013-07-15T17:41:25.770 回答