当我尝试通过 Spring Validator 验证 隐藏 字段是否为空时,验证程序发送的消息为 隐藏 到!!但是我想展示它。这是隐藏的字段:
<form:errors path="cinn" Class="errorblock"/>
<input type="hidden" value="${agact.cinn}" name="cinn" />
返回消息的验证器的方法:
public void validate(Object obj, Errors err) {
ValidationUtils.rejectIfEmptyOrWhitespace(err, "cinn", "name.required","You have to choose an agent first");
}
任何想法?
答案 0 :(得分:1)
用户不应该首先修改该字段(除非摆弄firebug等),所以最好的办法是断言值是正确的,如果没有,抛出异常(例如IllegalStateException)并对此作出反应通过显示错误消息,例如:
控制器:
@RequestMapping(..)
public String submit(..) {
if (hidden field is empty) {
throw new IllegalStateException("Missing XXX");
}
....
return "redirect:success"
}
@ExceptionHandler
public String handle(IllegalStateException e) {
logger.warn("User attempted to fiddle with POST data");
return "error";
}
其中“error”是样本视图名称。