我正在验证表单中下拉列表中选择的数据 - ice:selectOneMenu
。在valueChangeListener上。我有验证,它会添加错误消息:
FacesContext.getCurrentInstance().addMessage(fieldId,
new FacesMessage(FacesMessage.SEVERITY_ERROR, msg, msg));
验证在Bean上运行,并且错误消息显示给用户,但是当单击“保存”命令按钮时,页面将继续确认页面,此时它将保留在捕获页面上,直到选择了正确的值为止下拉列表。
为什么页面会继续确认页面?
答案 0 :(得分:1)
验证失败时,您必须抛出ValidatorException
,以便可以将输入视为无效输入。这很可能是原因。而不是
FacesContext.getCurrentInstance().addMessage(fieldId,
new FacesMessage(FacesMessage.SEVERITY_ERROR, msg, msg));
做
throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, msg, msg));