DTO:如何自定义Spring @Valid验证的默认错误消息?
public class User {
@NotNull
private String name;
@NotNull
private String password;
//..
}
控制器:
@RequestMapping(value = "/user", method = RequestMethod.POST)
public ResponseEntity<String> saveUser(@Valid @RequestBody User user) {
//..
return new ResponseEntity<>(HttpStatus.OK);
}
默认JSON错误:
{"timestamp":1417379464584,"status":400,"error":"Bad Request","exception":"org.springframework.web.bind.MethodArgumentNotValidException","message":"Validation failed for argument at index 0 in method: public org.springframework.http.ResponseEntity<demo.User> demo.UserController.saveUser(demo.User), with 2 error(s): [Field error in object 'user' on field 'name': rejected value [null]; codes [NotNull.user.name,NotNull.name,NotNull.java.lang.String,NotNull]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [user.name,name]; arguments []; default message [name]]; default message [may not be null]],"path":"/user"}
我想有我自定义的JSON为每个错误发生。我如何实现这一目标?
@ksaughs什么的ApiErrors类? – user6123723
org.springframework.validation.Errors from spring-context jar – kswaughs
@kswaughs,我搜索了各处的ApiErrors,并且无法在任何地方找到它。我还在maven中包含了spring-context依赖,并且找不到任何东西。唯一的网页结果是在你的答案中提到它的这个计算器页面。你能帮忙吗? – user238607