Spring Boot Rest Api 不显示验证消息

eft*_*Vaf 4 java spring spring-mvc spring-boot

我正在使用 Spring Boot 开发一个小的 REST API。我在我的实体类中使用验证注释:

@NotEmpty(message="Please enter a first name")
private String firstName; 
Run Code Online (Sandbox Code Playgroud)

这是我的控制器和服务:

@RestController
public class CustomerController {

    @Autowired
    private CustomerService userService;

    @PostMapping("/customer")
    @ResponseStatus(HttpStatus.CREATED)
    public Customer postUser (@RequestBody @Valid Customer customer){

      return userService.save(customer);

    } 
}
Run Code Online (Sandbox Code Playgroud)
public class CustomerService {

    @Autowired
    private CustomerRepository repository;

    @Transactional
    public Customer save ( Customer customer){

        return repository.save(customer);
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我尝试发送带有空 firstName 值的 JSON 时得到的响应:

{
    "timestamp": "2020-06-08T08:40:08.660+00:00",
    "status": 400,
    "error": "Bad Request",
    "message": "",
    "path": "/MVCwebshop/customer"
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我得到的 JSON 中的“消息”字段为空。当我尝试使用默认消息时也会发生这种情况。我怎样才能解决这个问题?

Lar*_*lis 7

如果使用 Spring Boot 2.3.0.RELEASE 你必须设置

server.error.include-message=always
Run Code Online (Sandbox Code Playgroud)

在您的 application.properties(或 yaml)中。

这里

  • 您好,我仅在将此属性 (server.error.include-message=always) 放入我的 application.properties: { "timestamp": "2021-03-25T17:25:49.475+00:00", “状态”:400,“错误”:“错误请求”,“消息”:“对象='memberRequestDTO'验证失败。错误计数:1”,“路径”:“/bookings/api/members/”} I想要显示该字段的错误消息,即:“@Size(min = 3, max = 50, message = "成员姓氏必须包含 3 到 50 个字符。")" 我该如何制作? (3认同)