⽬录
@PathVariable和@RequestParam传参为空⼩结⼀下
使⽤@pathvariable与@requestparam碰到的问题
1.@pathvariable2.@requestparam@PathVariable和@RequestParam传参为空
@RestController
public class UserController {
@GetMapping(value = {\"/xie/{name}\
public String xie(@PathVariable(value = \"name\ return \"my name is:\"+name; }
@GetMapping(\"/xie1\")
public String xie1(@RequestParam(value = \"name\ return \"my name is:\"+name; } }
访问地址:
⼩结⼀下
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\ System.out.println(\"test:\"+name); return SUCCESS;}
以上为个⼈经验,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- haog.cn 版权所有 赣ICP备2024042798号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务