我正在尝试将@RequestBody @Valid注释用于Spring中的bean验证和数据映射.
正如您在实体bean中看到的,我正在使用@NotNull和@Min注释,它们都使用不同的验证消息,我可以在BindingResult参数的控制器中读取此消息.
但是,当客户端为"operatorId"字段发送String值而不是long时,我收到一个错误,你可以看到它.
我的问题是:
当客户端为operatorId设置非数字字符串值时,我想将错误消息文本返回给客户端.(例如:"你应该发送一个数值等")
实体Bean:
@Entity(name="ua")
@Table(name="ua")
public class UserAgreement extends BaseContractEntity {
@Column(name = "OPERATOR_ID")
@NotNull(message = "operatorId must be provided")
@Min(value = 1, message = "operatorId must be bigger then zero")
protected long operatorId;
//... getters setters, etc
}
Run Code Online (Sandbox Code Playgroud)
控制器:
@RequestMapping(value = "/ug", method = RequestMethod.POST)
@ResponseBody
public ServiceResponse saveUserAgreement(@RequestBody @Valid UserAgreement userAgreement,
BindingResult result) {
ServiceResponse serviceResponse = new ServiceResponse();
if(result.hasErrors()) {
serviceResponse.setMessage(result.getAllErrors().get(0).getDefaultMessage());
serviceResponse.setErrorCode("400");
return serviceResponse;
} else { …Run Code Online (Sandbox Code Playgroud)