【发布时间】:2011-06-29 19:39:44
【问题描述】:
我正在使用 JSF 2.0 和 Glassfish v3。我正在测试 JSR303 bean 验证的功能,所以我创建了一个实现 ConstraintValidator 的验证器,然后在我要验证的属性上对其进行注释。
它工作正常,但它显示 Glassfish 默认错误页面。我不希望显示此消息,我希望将消息显示在 <h:outputText> 或其他内容中。
有人知道如何实现吗?
这是我的验证器方法:
@Override
public boolean isValid(String searchArg, ConstraintValidatorContext ctx) {
boolean searchArgCorrect = true;
FacesMessage msg;
if(searchArg!=null) {
ctx.disableDefaultConstraintViolation();
if(searchArg.length() < 3) {
ctx.buildConstraintViolationWithTemplate("Searcharg is too short").addConstraintViolation();
searchArgCorrect=false;
msg = new FacesMessage(
FacesMessage.SEVERITY_ERROR,
"Searcharg is too short", null);
throw new ValidatorException(msg);
}
}
return searchArgCorrect;
}
PS:我知道有更简单的方法来验证字符串的长度,但上面的代码 sn-p 仅用于演示/测试目的。我对验证器有另一个计划。
【问题讨论】:
-
@BalusC:我做了第二个回答......因为在评论字段中没有足够的空间......
标签: jsf-2 java-ee-6 bean-validation