小编Dor*_*use的帖子

Spring Bean验证@Valid处理

我使用Bean Validation 1.2使用以下方法创建了一个Spring MVC REST服务:

@RequestMapping(value = "/valid")
public String validatedMethod(@Valid ValidObject object) {

}
Run Code Online (Sandbox Code Playgroud)

如果object无效,Tomcat会通知我,The request sent by the client was syntactically incorrect.validatedMethod的调用永远不会被调用.

如何获取ValidObjectbean 中定义的消息?我应该使用一些过滤器或拦截器吗?

我知道我可以像下面一样重写,ConstraintViolation从注入中得到一组s Validator,但上面看起来更整洁......

@RequestMapping(value = "/valid")
public String validatedMethod(ValidObject object) {
    Set<ConstraintViolation<ValidObject>> constraintViolations = validator
            .validate(object);
    if (constraintViolations.isEmpty()) {
        return "valid";
    } else {
        final StringBuilder message = new StringBuilder();
        constraintViolations.forEach((action) -> {
            message.append(action.getPropertyPath());
            message.append(": ");
            message.append(action.getMessage());
        });
        return message.toString();
    }
}
Run Code Online (Sandbox Code Playgroud)

java spring-mvc bean-validation

12
推荐指数
2
解决办法
2万
查看次数

标签 统计

bean-validation ×1

java ×1

spring-mvc ×1