@PathVariable和@RequestParam传参为空问题及解决

网友投稿 1296 2022-11-25

@PathVariable和@RequestParam传参为空问题及解决

@PathVariable和@RequestParam传参为空问题及解决

目录@PathVariable和@RequestParam传参为空小结一下使用@pathvariable与@requestparam碰到的问题1.@pathvariable2.@requestparam

@PathVariable和@RequestParam传参为空

@RestController

public class UserController {

@GetMapping(value = {"/xie/{name}","/xie"})

public String xie(@PathVariable(value = "name",required=false) String name){

return "my name is:"+name;

}

@GetMapping("/xie1")

public String xirnGaueTe1(@RequestParam(value = "name",required = false) String name){

return "my name is:"+name;

}

}

访问地址rnGaueT:

http://localhost:8080/http://xie/qiao

http://localhost:8080/xie

http://localhost:8080/xie1

http://localhost:8080/xie1?name=qiao

小结一下

required = false属性设置前端可以不传数据,当在使用@RequestParam时直接写上,不需要改变地址映射,当使用@PathVariable时,需要在地址映射上面写入多个地址映射。而且必须写required = false,不然报500

使用@pathvariable与@requestparam碰到的问题

1.@pathvariable

可以将 URL 中占位符参数绑定到控制器处理方法的入参中:URL 中的 {x} 占位符可以通过@PathVariable("x") 绑定到操作方法的入参中。

@GetMapping("/test/{id}")

public String test(@PathVariable("id") String id){

System.out.println("test:"+id);

return SUCCESS;

}

可以看出使用@pathvariable注解它直接从url中取参,但是如果参数是中文就会出现乱码情况,这时应该使用@requestparam注解

2.@requestparam

它是直接从请求中取参,它是直接拼接在url后面(demo?name=张三)

@GetMapping("/demo")

public String test(@requestparam(value="name") String name){

System.out.println("test:"+name);

return SUCCESS;

}

注:如果参数不必须传入的话,我们从源码中可以看出两者required默认为true,如图:

所以我们可以这样写,只写一个例子

@GetMapping("/demo")

public String test(@requestparam(value="name", required = false) String name){

System.out.println("test:"+name);

return SUCCESS;

}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:phyml:基于最大似然法构建进化树
下一篇:详解人类基因在不同数据库中的ID
相关文章

 发表评论

暂时没有评论,来抢沙发吧~