我正在尝试对我的验证注释应用正确的方法,如下所示:
public class UserRequest {
@Size(min = 3, max = 50)
@NotBlank(message = "name cannot be empty and min 3, max 50 character length")
private String name;
@Email(message = "email is not valid")
private String email;
}
我需要以下功能:
1.如图所示name
字段,我需要获取验证消息中的字段名称和最小-最大参数值。
2.我将来应该能够在需要时本地化这些消息。
那么,我应该如何在 Spring Boot 应用程序中实现这种方法呢?是MessageSource
上提到的用法Spring Boot 中的自定义验证 MessageSource对此有适当的方法吗?
Update:当我尝试下面的方法时,我得到以下响应:
{
"timestamp": "26.02.2023 01:10:15",
"status": 400,
"error": "Bad Request",
"exception": "org.springframework.web.bind.MethodArgumentNotValidException",
"message": "Validation failed for object='createPostRequest'. Error count: 1",
"errors": [
{
"codes": [
"NotBlank.createPostRequest.name",
"NotBlank.name",
"NotBlank.java.lang.String",
"NotBlank"
],
"arguments": [
{
"codes": [
"createPostRequest.name",
"name"
],
"arguments": null,
"defaultMessage": "name",
"code": "name"
}
],
"defaultMessage": "{name.not-blank}",
"objectName": "createPostRequest",
"field": "name",
"rejectedValue": null,
"bindingFailure": false,
"code": "NotBlank"
}
],
"path": "/api/v1/posts"
}
因此,它似乎没有转换由message.properties
在资源文件夹中。