@PathVariable注解允许参数为空、不传参数如何处理
@PathVariable注解允许参数为空、不传参数如何处理?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
说明
设置可以不传:
但是请求的时候,仍然提示projectId必传:
这是因为url要求带参,属于REST参数。
解决办法
设置多个url path即可,有的传REST参,有的不传。当然required必须是false
这个问题以前解决过,——还是要温习一下比较好呀
补充:接收参数注解@PathVariable 与 @RequestParam与 不使用注解接收参数的情况
@RequestParam使用场景:
@RequestParam: 顾名思义,获取请求参数的
@RequestParam的两个属性:value 获取值 , required 为 true 必填
1. 1前端地址情景:
http://localhost:8989/SSSP/emps?pageNo=2
如果想获取地址中的 pageNo的值 ‘2'> ,则使用@RequestParam
1.2.前端BootStrap请求情景:
传单个参数:
queryParams:{id,id}//(此时id已获取到js,如varid=row.id)传多个参数:
queryParams:function(params){
return{
type:#(‘type').val,
accountName:#(‘accountName').val
}
}1.3 后台获取上面两种传参方式:
PublicObjectgetXiFeiList(@RequestParamMapparams){ //使用方式一:使用get(“key”)获取后使用 params.get(“id”); //使用方式二:作为Query的参数创建对象,直接使用 Queryquery=newQuery(params); List dictList=dictSevice.list(query); }
@PathVariable使用场景:
@PathVariable:顾名思义,获取url地址中的一部分值
1. 前端地址单参数情景:
http://localhost:8989/SSSP/emp/type
如果想获取地址中的 emp/type 中的 ‘type ',则使用@PathVariable
2. 前端地址多参数情景
http://localhost:8989/SSSP/emp/7/5
如果想获取地址中的 emp/7/5 中的‘7''5',则使用@PathVariable
3. 后台获取:
接收单个参数
StringaddD(@PathVariable(“type”)Stringtype)
接收多个参数
StringaddD(@PathVariable(“type”)Stringtype,@PathVariable(“id”)Longid)
不使用注解就可以接收参数的情况
情况1. 前端Js中发送ajax请求data:{‘id',id}情景:
remove(id){
function(){
$.ajax(){
url:prefix+”/remove”,
type:”post”,
data:{‘id',id}//ajax使用data传值时使用@PathVariable
.......
}
}
}情况1.后台获取:
publicRremove(Longid){}//获取后就可以直接使用情况2. 前端JS中发送ajax请求data: $('#addLoanForm').serialize()情景:
$.ajax({
cache:true,
type:"POST",
url:"/loansign/signProject/creditSave",
data:$('#addLoanForm').serialize()
//重要:将前台表单中的数据序列化,序列化的内容是name
}情况2.后台获取:
publicRcreditSave(SignCreditDOsignCredit){}//使用对象接收数据看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注恰卡编程网行业资讯频道,感谢您对恰卡编程网的支持。
推荐阅读
-
JAVA实现HTML转PDF的五种方法详解
-
MySQL创建和删除索引命令CREATE/DROP INDEX使用方法详解
-
深入理解 JavaScript 原型和构造函数创建对象的机制
-
ZooKeeper和Eureka有什么区别?注册中心如何选择?
-
ZooKeeper是什么?分布式系统开发者必读入门指南
-
JavaScript防抖与节流函数怎么写?高频事件优化技巧详解
-
c++中sprintf函数使用方法及示例代码详解
在C++编程中,格式化输出是常见的需求。虽然cout提供了基本的输出功能,但在需要精确控制输出格式(如指定宽度、精度、进制等)...
-
Swagger 接口注解详解教程:@Api、@ApiOperation、@ApiModelProperty 全解析
-
Python变量命名规则全解析:打造规范、可读性强的代码风格
-
OpenSSL是什么?OpenSSL使用方法详解
