目录
-
@pathvariable使用时遇到的问题
- 第一个问题
- 解决办法
- 第二个问题
- 解决办法
-
@pathvariable 404问题
@pathvariable使用时遇到的问题
第一个问题
接口:
?| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
/**
* 查询客户详细信息
* by oliver_deng
* @param userid 用户id
* @return
*/
@apioperation(value="查询客户详细信息",notes = "根据传入id查询客户详细信息")
@apiresponses({@apiresponse(code=400,message="请求参数没填好")})
@apiimplicitparam(paramtype = "query", name = "userid", datatype = "integer", required = true, value = "客户id")
@getmapping("/findcustomerdetailbyuserid/{userid}")
public result<map<string,object>> findcustomerbyuserid(@pathvariable integer userid){
//客户信息
// customerlistvo customermessage = customeruserservice.findcustomerbyuserid(userid);
//客户车辆信息
// list<customerusercar> cars = customerusercarservice.findcarbyuserid(integer.valueof(userid)); //not finish yet
//todo 计次卡、储值卡
return null;
}
|
swagger访问:

解决办法

将paramtype 设置为path即可。
paramtype:表示参数放在哪个地方
-
header-->请求参数的获取:@requestheader(代码中接收注解) -
query-->请求参数的获取:@requestparam(代码中接收注解) -
path(用于restful接口)-->请求参数的获取:@pathvariable(代码中接收注解) -
body-->请求参数的获取:@requestbody(代码中接收注解) -
form(不常用)
第二个问题
接口:
?| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
/**
* 查询车辆品牌、车系、年款、车型信息
* by oliver_deng
* @param brandid 车辆品牌id
* @param familyid 车系id
* @param groupid 车辆年款id
* @return
*/
@apioperation(value="查询车辆品牌、车系、年款、车型信息",notes = "查询车辆品牌、车系、年款、车型信息,传入子id时先将上级id清空,一次访问只能传入一种id或者不传id")
@apiimplicitparams({
@apiimplicitparam(paramtype = "query", name = "brandid", datatype = "string", required = false, value = "车辆品牌id"),
@apiimplicitparam(paramtype = "query", name = "familyid", datatype = "string", required = false, value = "车系id"),
@apiimplicitparam(paramtype = "query", name = "groupid", datatype = "string", required = false, value = "车辆年款id")
})
@apiresponses({@apiresponse(code=400,message="请求参数没填好")})
@getmapping("/findcarbrandmessage/{brandid}/{familyid}/{groupid}")
public result findcarbrandmessage(@pathvariable string brandid,@pathvariable string familyid,@pathvariable string groupid){
return customerusercarservice.findcarbrandmessage(brandid,familyid,groupid);
}
|
swageer访问:

查询成功,但是没有数据,我们来debug看一下:

可以看到值竟然时这些,并不是为null,所以自然满足了if条件,但功能并不是要如此。
解决办法

把@apiimplicitparam参数去掉,用@requestparam()。
为什么能用@requestparam()?
requestparam就是在url后面拼接的参数。
成功:

@pathvariable 404问题
跳转页面:

controller层:

之后console不报错,但是

改变方法:

改正之后:

以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/weixin_44073321/article/details/89521177








发表评论
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。