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的值;











目录
相关文章
|
1月前
|
关系型数据库 MySQL Java
【IDEA】java后台操作mysql数据库驱动常见错误解决方案
【IDEA】java后台操作mysql数据库驱动常见错误解决方案
67 0
|
26天前
|
Java 测试技术 开发者
Java零基础-indexOf(String str)详解!
【10月更文挑战第14天】Java零基础教学篇,手把手实践教学!
110 65
|
11天前
|
人工智能 监控 数据可视化
Java智慧工地信息管理平台源码 智慧工地信息化解决方案SaaS源码 支持二次开发
智慧工地系统是依托物联网、互联网、AI、可视化建立的大数据管理平台,是一种全新的管理模式,能够实现劳务管理、安全施工、绿色施工的智能化和互联网化。围绕施工现场管理的人、机、料、法、环五大维度,以及施工过程管理的进度、质量、安全三大体系为基础应用,实现全面高效的工程管理需求,满足工地多角色、多视角的有效监管,实现工程建设管理的降本增效,为监管平台提供数据支撑。
27 3
|
17天前
|
Java API Apache
|
27天前
|
Java 测试技术 开发者
Java零基础-indexOf(String str)详解!
【10月更文挑战第13天】Java零基础教学篇,手把手实践教学!
40 1
|
1月前
|
安全 Java 测试技术
Java零基础-StringBuffer 类详解
【10月更文挑战第9天】Java零基础教学篇,手把手实践教学!
25 2
|
1月前
|
IDE Java 开发工具
Java“未封闭的 String 表达式”怎么解决
要解决Java中的“未封闭的 String 表示”问题,需检查并修正字符串字面量,确保每个字符串被正确地用双引号括起来。若字符串跨越多行,可使用字符串连接操作符(+)或引入文本块(JDK 13 及以上版本)。这能帮助避免语法错误,并使代码更整洁易读。
|
1月前
|
Java
短频快task的java解决方案
本文探讨了Java自带WorkStealingPool的缺陷,特别是在任务中断方面的不足。普通线程池在处理短频快任务时存在锁竞争问题,导致性能损耗。文章提出了一种基于任务窃取机制的优化方案,通过设计合理的窃取逻辑和减少性能损耗,实现了任务的高效执行和资源的充分利用。最后总结了不同场景下应选择的线程池类型。
|
1月前
|
存储 安全 Java
【一步一步了解Java系列】:认识String类
【一步一步了解Java系列】:认识String类
25 2
|
1月前
|
小程序 Java
小程序访问java后台失败解决方案
小程序访问java后台失败解决方案
44 2