springboot的处理办法

使用这个@RequestBody 如何提示转换错误要怎么解决啊?

img

img

把你前端的请求代码看下,4xx的错误一般都是前端请求有问题

你的请求参数是JSON字符串吗

你这个获取的是路径的url,并不是你前端交互的信息。把这个注解去掉就好了。

【相关推荐】



  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7632455
  • 你也可以参考下这篇文章:springboot项目启动提示:找不到或无法加载主类【解决思路】
  • 您还可以看一下 李胜金老师的SpringBoot 数据库本地事务与多数据源事务 电商系统高阶实战课程中的 课程介绍小节, 巩固相关知识点
  • 除此之外, 这篇博客: Springboot默认的错误页是如何工作及工作原理你肯定不知道?中的 默认错误页 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

    在Springboot中默认有个自动配置的错误页,在上面有一个代码片段你应该注意到了

    @AutoConfigureBefore(WebMvcAutoConfiguration.class)
    @EnableConfigurationProperties({ ServerProperties.class, WebMvcProperties.class })
    public class ErrorMvcAutoConfiguration {
      @Bean
      @ConditionalOnMissingBean(value = ErrorAttributes.class, search = SearchStrategy.CURRENT)
      public DefaultErrorAttributes errorAttributes() {
        return new DefaultErrorAttributes();
      }
      @Bean
      @ConditionalOnMissingBean(value = ErrorController.class, search = SearchStrategy.CURRENT)
      public BasicErrorController basicErrorController(ErrorAttributes errorAttributes, ObjectProvider<ErrorViewResolver> errorViewResolvers) {
        return new BasicErrorController(errorAttributes, this.serverProperties.getError(), errorViewResolvers.orderedStream().collect(Collectors.toList()));
      }
    }

    查看这个Controller

    // 默认的错误页地址是/error
    @Controller
    @RequestMapping("${server.error.path:${error.path:/error}}")
    public class BasicErrorController extends AbstractErrorController {
      
      @RequestMapping(produces = MediaType.TEXT_HTML_VALUE)
      public ModelAndView errorHtml(HttpServletRequest request, HttpServletResponse response) {
        HttpStatus status = getStatus(request);
        Map<String, Object> model = Collections.unmodifiableMap(getErrorAttributes(request, getErrorAttributeOptions(request, MediaType.TEXT_HTML)));
        response.setStatus(status.value());
        ModelAndView modelAndView = resolveErrorView(request, response, status, model);
        return (modelAndView != null) ? modelAndView : new ModelAndView("error", model);
      }
    
      @RequestMapping
      public ResponseEntity<Map<String, Object>> error(HttpServletRequest request) {
        HttpStatus status = getStatus(request);
        if (status == HttpStatus.NO_CONTENT) {
          return new ResponseEntity<>(status);
        }
        Map<String, Object> body = getErrorAttributes(request, getErrorAttributeOptions(request, MediaType.ALL));
        return new ResponseEntity<>(body, status);
      }
    
    }

    这里有两个方法,分别处理了不同的Accept请求头。到此你是否真正地明白了Springboot中的错误处理的工作原理呢?

    完毕!!!

     给个关注+转发谢谢

     图片

    图片

    图片

    图片

    图片


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^