您好,欢迎来到好走旅游网。
搜索
您的当前位置:首页@PathVariable和@RequestParam传参为空问题及解决

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

来源:好走旅游网
@PathVariable和@RequestParam传参为空问题及解决

⽬录

@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

本站由北京市万商天勤律师事务所王兴未律师提供法律服务