前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >There was an unexpected error (type=Bad Request, status=400). Failed to convert value of type ‘java.

There was an unexpected error (type=Bad Request, status=400). Failed to convert value of type ‘java.

作者头像
猫头虎
发布2024-04-08 10:21:26
800
发布2024-04-08 10:21:26
举报

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍专栏》学会IDEA常用操作,工作效率翻倍~💐 🌊 《100天精通Golang(基础入门篇)》学会Golang语言,畅玩云原生,走遍大小厂~💐

🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬请批评指正!🍁🐥

问题解答:

有解决办法是看注解,我的情况是参数上没有带注解,原因是接口接收参数类型是int,

int类型默认值为0 不能传空

错误情况:

@RequestParam(name = “userId”, required = false, defaultValue = " ") userId: Int

正确情况:

代码语言:javascript
复制
`@RequestParam(name = "userId", required = false, defaultValue = "0") userId: Int	`
代码语言:javascript
复制
2022-08-05 10:14:54.157 [http-nio-8080-exec-5] [DEBUG]  org.springframework.web.servlet.DispatcherServlet {DispatcherServlet.java:845} - DispatcherServlet with name 'spring-servlet' processing GET request for [/index]
2022-08-05 10:14:54.161 [http-nio-8080-exec-5] [DEBUG]  org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping {AbstractHandlerMethodMapping.java:297} - Looking up handler method for path /index
2022-08-05 10:14:54.161 [http-nio-8080-exec-5] [DEBUG]  org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping {AbstractHandlerMethodMapping.java:302} - Returning handler method [public java.lang.String com.xiangshi.wzc.devloper.pc.modules.index.IndexController.index()]
2022-08-05 10:14:54.162 [http-nio-8080-exec-5] [DEBUG]  org.springframework.beans.factory.support.DefaultListableBeanFactory {AbstractBeanFactory.java:248} - Returning cached instance of singleton bean 'indexController'
2022-08-05 10:14:54.162 [http-nio-8080-exec-5] [DEBUG]  org.springframework.web.servlet.DispatcherServlet {DispatcherServlet.java:931} - Last-Modified value for [/index] is: -1
2022-08-05 10:14:54.163 [http-nio-8080-exec-5] [DEBUG]  org.springframework.web.servlet.DispatcherServlet {DispatcherServlet.java:1225} - Rendering view [org.springframework.web.servlet.view.JstlView: name 'index'; URL [/WEB-INF/views/index.jsp]] in DispatcherServlet with name 'spring-servlet'
2022-08-05 10:14:54.165 [http-nio-8080-exec-5] [DEBUG]  org.springframework.web.servlet.view.JstlView {InternalResourceView.java:166} - Forwarding to resource [/WEB-INF/views/index.jsp] in InternalResourceView 'index'
2022-08-05 10:14:54.330 [http-nio-8080-exec-5] [DEBUG]  org.springframework.web.servlet.DispatcherServlet {FrameworkServlet.java:996} - Successfully completed request
2022-08-05 10:14:54.332 [http-nio-8080-exec-5] [DEBUG]  org.springframework.beans.factory.support.DefaultListableBeanFactory {AbstractBeanFactory.java:248} - Returning cached instance of singleton bean 'sqlSessionFactory'
2022-08-05 10:14:54.514 [http-nio-8080-exec-6] [DEBUG]  org.springframework.web.servlet.DispatcherServlet {DispatcherServlet.java:845} - DispatcherServlet with name 'spring-servlet' processing GET request for [/order/ExportAll]
2022-08-05 10:14:54.516 [http-nio-8080-exec-6] [DEBUG]  org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping {AbstractHandlerMethodMapping.java:297} - Looking up handler method for path /order/ExportAll
2022-08-05 10:14:54.533 [http-nio-8080-exec-6] [DEBUG]  org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping {AbstractHandlerMethodMapping.java:302} - Returning handler method [public org.springframework.web.servlet.ModelAndView com.xiangshi.wzc.basecore.web.controller.BaseControllerImpl.viewOne(java.lang.Long)]
2022-08-05 10:14:54.533 [http-nio-8080-exec-6] [DEBUG]  org.springframework.beans.factory.support.DefaultListableBeanFactory {AbstractBeanFactory.java:248} - Returning cached instance of singleton bean 'orderController'
2022-08-05 10:14:54.533 [http-nio-8080-exec-6] [DEBUG]  org.springframework.web.servlet.DispatcherServlet {DispatcherServlet.java:931} - Last-Modified value for [/order/ExportAll] is: -1
2022-08-05 10:14:54.538 [http-nio-8080-exec-6] [DEBUG]  org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver {AbstractHandlerExceptionResolver.java:134} - Resolving exception from handler [public org.springframework.web.servlet.ModelAndView com.xiangshi.wzc.basecore.web.controller.BaseControllerImpl.viewOne(java.lang.Long)]: org.springframework.beans.TypeMismatchException: Failed to convert value of type [java.lang.String] to required type [java.lang.Long]; nested exception is java.lang.NumberFormatException: For input string: "ExportAll"
2022-08-05 10:14:54.538 [http-nio-8080-exec-6] [DEBUG]  org.springframework.web.servlet.mvc.annotation.ResponseStatusExceptionResolver {AbstractHandlerExceptionResolver.java:134} - Resolving exception from handler [public org.springframework.web.servlet.ModelAndView com.xiangshi.wzc.basecore.web.controller.BaseControllerImpl.viewOne(java.lang.Long)]: org.springframework.beans.TypeMismatchException: Failed to convert value of type [java.lang.String] to required type [java.lang.Long]; nested exception is java.lang.NumberFormatException: For input string: "ExportAll"
2022-08-05 10:14:54.539 [http-nio-8080-exec-6] [DEBUG]  org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver {AbstractHandlerExceptionResolver.java:134} - Resolving exception from handler [public org.springframework.web.servlet.ModelAndView com.xiangshi.wzc.basecore.web.controller.BaseControllerImpl.viewOne(java.lang.Long)]: org.springframework.beans.TypeMismatchException: Failed to convert value of type [java.lang.String] to required type [java.lang.Long]; nested exception is java.lang.NumberFormatException: For input string: "ExportAll"
2022-08-05 10:14:54.539 [http-nio-8080-exec-6] [DEBUG]  org.springframework.web.servlet.DispatcherServlet {DispatcherServlet.java:1018} - Null ModelAndView returned to DispatcherServlet with name 'spring-servlet': assuming HandlerAdapter completed request handling
2022-08-05 10:14:54.539 [http-nio-8080-exec-6] [DEBUG]  org.springframework.web.servlet.DispatcherServlet {FrameworkServlet.java:996} - Successfully completed request
2022-08-05 10:14:54.541 [http-nio-8080-exec-6] [DEBUG]  org.springframework.beans.factory.support.DefaultListableBeanFactory {AbstractBeanFactory.java:248} - Returning cached instance of singleton bean 'sqlSessionFactory'
2022-08-05 10:14:59.673 [http-nio-8080-exec-8] [DEBUG]  org.springframework.web.servlet.DispatcherServlet {DispatcherServlet.java:845} - DispatcherServlet with name 'spring-servlet' processing GET request for [/index]
2022-08-05 10:14:59.676 [http-nio-8080-exec-8] [DEBUG]  org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping {AbstractHandlerMethodMapping.java:297} - Looking up handler method for path /index
2022-08-05 10:14:59.676 [http-nio-8080-exec-8] [DEBUG]  org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping {AbstractHandlerMethodMapping.java:302} - Returning handler method [public java.lang.String com.xiangshi.wzc.devloper.pc.modules.index.IndexController.index()]
2022-08-05 10:14:59.676 [http-nio-8080-exec-8] [DEBUG]  org.springframework.beans.factory.support.DefaultListableBeanFactory {AbstractBeanFactory.java:248} - Returning cached instance of singleton bean 'indexController'
2022-08-05 10:14:59.677 [http-nio-8080-exec-8] [DEBUG]  org.springframework.web.servlet.DispatcherServlet {DispatcherServlet.java:931} - Last-Modified value for [/index] is: -1
2022-08-05 10:14:59.677 [http-nio-8080-exec-8] [DEBUG]  org.springframework.web.servlet.DispatcherServlet {DispatcherServlet.java:1225} - Rendering view [org.springframework.web.servlet.view.JstlView: name 'index'; URL [/WEB-INF/views/index.jsp]] in DispatcherServlet with name 'spring-servlet'
2022-08-05 10:14:59.679 [http-nio-8080-exec-8] [DEBUG]  org.springframework.web.servlet.view.JstlView {InternalResourceView.java:166} - Forwarding to resource [/WEB-INF/views/index.jsp] in InternalResourceView 'index'
2022-08-05 10:14:59.840 [http-nio-8080-exec-8] [DEBUG]  org.springframework.web.servlet.DispatcherServlet {FrameworkServlet.java:996} - Successfully completed request
2022-08-05 10:14:59.843 [http-nio-8080-exec-8] [DEBUG]  org.springframework.beans.factory.support.DefaultListableBeanFactory {AbstractBeanFactory.java:248} - Returning cached instance of singleton bean 'sqlSessionFactory' 

解决办法:

如果你是想这个参数必须传空的情况下。最简单的解决办法为将参数类型变成integer,代码中加校验如果为空怎么处理,不为空怎么处理。

不加校验会报错

当处理 Spring Framework 中的请求参数时,经常会涉及到使用 @RequestParam 注解来获取参数值并将其绑定到方法的参数上。然而,在设置参数类型、默认值以及处理参数为空的情况时,有一些关键点需要注意。

1. @RequestParam 注解简介

在 Spring Framework 中,@RequestParam 注解是一个常用的注解,用于从请求中获取参数的值。它可以应用于方法的参数上,将请求参数与方法参数进行绑定。在实际应用中,我们可能会遇到一些情况,需要对参数类型、默认值以及处理参数为空的情况进行特定的设置。

2. 参数类型与默认值设置

在使用 @RequestParam 注解时,参数类型和默认值的设置是十分重要的。考虑以下情况:

错误情况:
代码语言:javascript
复制
@RequestParam(name = "userId", required = false, defaultValue = " ") userId: Int

这里的错误在于将空格作为整数类型参数 userId 的默认值。实际上,defaultValue 应该设置为一个合法的整数值,以确保参数未提供时能够使用有效的默认值。

正确情况:
代码语言:javascript
复制
@RequestParam(name = "userId", required = false, defaultValue = "0") userId: Int

在这个正确的示例中,defaultValue 被设置为 "0",这是一个合法的整数值。这样,当参数未提供时,userId 将使用默认值 0。

3. 处理参数为空的情况

对于需要处理参数为空的情况,您提出了一种解决方案,即将参数类型从 Int 更改为 Integer,并在代码中添加相应的校验。这是一个明智的做法,因为 Integer 类型可以接受 null 值,从而更好地处理参数值为空的情况。

例如,您可以使用如下方式来处理参数为空的情况:

代码语言:javascript
复制
@RequestMapping("/process")
public String processRequest(@RequestParam(name = "userId", required = false) userId: Integer) {
    if (userId == null) {
        // 处理参数为空的情况
    } else {
        // 处理参数不为空的情况
    }
    // ...
}

在这个例子中,我们使用了 Integer 类型的 userId 参数,并通过判断是否为 null 来处理参数为空和非空的情况。

4. 结论

处理 Spring Framework 中的请求参数时,正确设置参数类型、默认值,以及处理参数为空的情况,都是至关重要的。通过正确使用 @RequestParam 注解,您可以更好地控制参数的传递和处理,从而增强您的应用程序的可靠性和灵活性。同时,根据实际需要,您可以选择将参数类型设置为 Integer,以便更好地处理参数值为空的情况。这些技巧将有助于您在 Spring Framework 中有效地处理请求参数,提升代码质量和可维护性。

希望本篇博客对您理解和处理 Spring Framework 中的请求参数问题有所帮助。如果您有任何疑问或需要进一步的解释,请随时提问。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-08-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题解答:
    • 错误情况:
      • 正确情况:
      • 解决办法:
        • 1. @RequestParam 注解简介
          • 2. 参数类型与默认值设置
            • 错误情况:
            • 正确情况:
          • 3. 处理参数为空的情况
            • 4. 结论
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档