0

当我尝试通过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");
    }

任何想法 ?

4

1 回答 1

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”是示例视图名称。

于 2013-06-04T06:22:06.847 回答