我一直在尝试为 @Controller 类中由 Spring MVC 管理的 REST 服务添加验证错误的自定义消息。
员工类:
public class Employee {
@NotNull
@NotEmpty
private String company;
...
}
我的 REST 服务:
@ResponseStatus(value = HttpStatus.CREATED)
@RequestMapping(method = RequestMethod.POST)
public void add(@RequestBody @Valid Employee employee) {
employees.add(employee);
}
并且验证错误解析
@ResponseStatus(value = HttpStatus.BAD_REQUEST)
@ExceptionHandler(MethodArgumentNotValidException.class)
public @ResponseBody
List<String> validationExceptions(MethodArgumentNotValidException e) {
List<String> errors = new ArrayList<String>();
for (FieldError error : e.getBindingResult().getFieldErrors()) {
errors.add(error.getDefaultMessage());
}
return errors;
}
因此,我在类路径的根目录上放置了一个 ValidationMessages.properties,但我无法使用以下 key 获取我的自定义消息NotEmpty.employee.company
。
我知道有很多方法可以使用 ResourceBundle 和 error.getCode(),甚至使用 key org.hibernate.validator.constraints.NotEmpty.message
,但我希望有特定对象的特定字段的特定消息。
我也不想这样做@NotEmpty(message = "NotEmpty.employee.company}")
。我想要最简单的。
我应该怎么办?