JSF - 在引发WARN ValidatorException时阻止validationFailed

Séb*_*omp 2 validation jsf

我有一个表单,它的字段使用验证器.这些验证器可以发回Severity.SEVERITY_ERROR或Severity.SEVERITY_WARN消息,如图所示:

if (!isInMainFamily) {
    FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_WARN, "You should make sure to tag your competency in at least one main category", null);
    throw new ValidatorException(message);
}
Run Code Online (Sandbox Code Playgroud)

但是,SEVERITY_WARN消息对我没有阻止.它们只是告诉用户他们应该更正输入的一种方式,但不会阻止他们提交表单并保存他们的数据.

但是,似乎抛出任何类型的ValidatorException将FacesContext标记为"validationFailed",然后阻止提交表单.

有办法解决这个问题吗?还是我误解了什么?

非常感谢你的帮助,
塞巴斯蒂安

Bal*_*usC 5

您想将消息添加到上下文而不是将其抛出ValidatorException.这是标记输入无效的异常,因此阻止表单提交.

context.addMessage(component.getClientId(), message);
Run Code Online (Sandbox Code Playgroud)