Java Spring MVC验证错误消息
我对SpringMVC中的验证有问题。如果我发送了无效的正文请求,应用程序将返回错误的请求,但不会返回我的自定义消息 代码是:Java Spring MVC验证错误消息,java,hibernate,validation,spring-mvc,Java,Hibernate,Validation,Spring Mvc,我对SpringMVC中的验证有问题。如果我发送了无效的正文请求,应用程序将返回错误的请求,但不会返回我的自定义消息 代码是: public @ResponseBody ResponseEntity<BaseModel> newTicket(@Valid @RequestBody Ticket ticket, Locale locale, BindingResult bindingResult ){ if(bindingResult.hasErrors()) {
public @ResponseBody ResponseEntity<BaseModel> newTicket(@Valid @RequestBody Ticket ticket, Locale locale, BindingResult bindingResult ){
if(bindingResult.hasErrors()) {
logger.info("error");
throw new BadRequestException("Bad Request");
}
public@ResponseBody ResponseEntity newTicket(@Valid@RequestBody票证、Locale、BindingResult){
if(bindingResult.hasErrors()){
logger.info(“错误”);
抛出新的BadRequestException(“坏请求”);
}
如果我尝试将应用程序置于调试模式,则永远不会执行if
有人能帮我吗?您可以通过以下方式指示错误请求:
@ExceptionHandler
@ResponseStatus(HttpStatus.BAD_REQUEST)
public void handle(HttpMessageNotReadableException e) {
//do something here in case of bad request.
}
您可以继续并根据需要进行自定义。记录的错误是什么?没有错误,只有404状态代码为@NiVeRWell 404的空白响应意味着找不到api,因此请尝试检查路径中是否有错误。抱歉,400 not 404Mh不起作用,使用此方法返回的消息是apache 400默认消息,并且您试图重新运行一些有意义的对象而不是void?我倾向于使用某种标准的错误响应,其中包含错误代码(不一定是http状态代码)、错误消息和根本原因描述(例如getMessage().@PetarMitrovic您可以返回任何内容,就像从控制器中的任何API返回一样。@NiVeR,我建议您返回一些对象,而不是void,以便将其解析为响应体。这样,您就不应该得到Apache的默认消息。