JAVA解决方案:Missing URI template variable ‘customersno‘ for method parameter of type String

简介: 解决方案PathVariable和RequestParam的使用@PathVariable@RequestParamPathVariable和RequestParam的区别区别在于一个是用?,一个使用/进行传输数据



问题复现:

@RequestMapping(value="querySetmealByCustomersno", method=RequestMethod.POST)
@ApiOperation(value="查询客户套餐类型")
publicPmpResultquerySetmealByCustomersno(@PathVariableStringcustomersno){}

运行时出现错误:

               Missing URI template variable ‘customersno‘ for method parameter of type String



问题原因:路径中没有对应的参数或者参数名不对,需要定义好参数


解决方案:  在url路径中定义参数。


解决方案一:


@RequestMapping(value="querySetmealByCustomersno/{customersno}", method=RequestMethod.POST)
@ApiOperation(value="查询客户套餐类型")
publicPmpResultquerySetmealByCustomersno(@PathVariableStringcustomersno){}

问题原因:

如果使用的是Vue+Springboot前后端分离,想要传递数据,传递的url可能是:http://localhost:8080/querySetmealByCustomersno?customersno=202320032003

那么此时你使用的应当是@RequestParam,而不是@PathVariable


解决方案二:      


@RequestMapping(value="querySetmealByCustomersno", method=RequestMethod.POST)
@ApiOperation(value="查询客户套餐类型")
publicPmpResultquerySetmealByCustomersno(@RequestParamStringcustomersno){}

PathVariable和RequestParam的区别

区别在于一个是用?,一个使用/进行传输数据


PathVariable和RequestParam的使用

方案一:http://localhost:8080/querySetmealByCustomersno/customersno=202320032003


方案二:http://localhost:8080/querySetmealByCustomersno?customersno=202320032003




总结:

@PathVariable

从路径中获取变量,也就是把路径当做变量。

 使用@RequestMapping URI template 样式映射时, 即 someUrl/{paramId},这时的paramId可通过 @Pathvariable注解绑定它传过来的值到方法的参数上。


@RequestParam

从请求中获取参数

 常用来处理简单类型的绑定,通过Request.getParameter() 获取的String可直接转换为简单类型的情况( String–> 简单类型的转换操作由ConversionService配置的转换器来完成);因为使用request.getParameter()方式获取参数,所以可以处理get 方式中queryString的值,也可以处理post方式中 body data的值;











目录
相关文章
|
3天前
|
安全 Java
java线程之List集合并发安全问题及解决方案
java线程之List集合并发安全问题及解决方案
8 1
|
14天前
|
算法 Java 编译器
java.lang.StackOverflowError解决方案
java.lang.StackOverflowError解决方案
28 3
|
3天前
|
算法 安全 Java
Java中的并发编程问题与解决方案
Java中的并发编程问题与解决方案
|
1月前
|
Java 关系型数据库 MySQL
Java中文乱码浅析及解决方案
Java中文乱码浅析及解决方案
|
1月前
|
设计模式 Java 容器
【设计模式】JAVA Design Patterns——Async Method Invocation(异步方法调用模式)
【设计模式】JAVA Design Patterns——Async Method Invocation(异步方法调用模式)
|
4天前
|
安全 Java
java.lang.NullPointerException出现的原因及解决方案
java.lang.NullPointerException出现的原因及解决方案
|
4天前
|
存储 人工智能 Java
2024创建boot时 项目SDK11不支持所选的版本Java21 请选择较低版本的java 解决方案
2024创建boot时 项目SDK11不支持所选的版本Java21 请选择较低版本的java 解决方案
14 2
|
4天前
|
Java 测试技术
Java反射之Method的invoke方法详解
Java反射之Method的invoke方法详解
|
18天前
|
Java 持续交付 Maven
Java报错:Missing ServletWebServerFactory bean,如何解决
Java开发中遇到`Missing ServletWebServerFactory bean`错误?该问题可能由依赖冲突、配置问题或环境不一致引起。解决方法包括:检查依赖版本一致性、修复配置错误、确保环境匹配,以及查看IDE中的JRE配置。预防这类问题,可采用版本管理工具、CI/CD流程、代码审查和社区学习。木头左提醒,记得点赞和分享,下次见!
Java报错:Missing ServletWebServerFactory bean,如何解决
|
23天前
|
JavaScript Java
Java long传到前台精度损失解决方案
Java long传到前台精度损失解决方案
17 1