【springmvc】@RequestParam详解以及加与不加的区别
2018-01-08 18:44
330 查看
以前写controller层的时候都是默认带上 @RequestParam 的, 今天发现不加@RequestParam 也能接收到参数
下面我们来区分一下加与不加的区别
这里有两种写法
[html] view
plain copy
@RequestMapping("/list")
public String test(@RequestParam Long parentId) {
}
[html] view
plain copy
@RequestMapping("/list")
public String test( Long parentId) {
}
第一种必须带有参数,也就是说你直接输入localhost:8080/list
会报错 不会执行方法 只能输入localhost:8080/list?parentId=? 才能执行相应的方法
第二种 可带参数也可不带参数 就是说你输入 localhost:8080/list 以及 localhost:8080/list?parentId=? 方法都能执行
当然你也可以设置 @RequestParam 里面的required为false(默认为true 代表必须带参数) 这样就跟第二种是一样的了
如下:
[html] view
plain copy
@RequestMapping("/list")
public String test(@RequestParam(required=false) Long parentId) {
.....
}
当然你还可以设置里面的defaultValue的属性
如下:
[html] view
plain copy
@RequestMapping("/list")
public String test(@RequestParam(defaultValue="0") Long parentId) {
...
}
这样在地址里面也可以不带参数,如果带了参数会接收,不带参数会默认为0
里面还有一个value属性也讲一下, 前面所有的方法 传入的参数必须为parentId 才能接收到值
但是如果你加了value属性
[html] view
plain copy
@RequestMapping("/list")
public String test(@RequestParam(value="id") Long parentId) {
..
}
这样会用id 代替parentId 也就是说你地址里面传入的参数名称为id localhost:8080/list?id=? 这种
下面我们来区分一下加与不加的区别
这里有两种写法
[html] view
plain copy
@RequestMapping("/list")
public String test(@RequestParam Long parentId) {
}
[html] view
plain copy
@RequestMapping("/list")
public String test( Long parentId) {
}
第一种必须带有参数,也就是说你直接输入localhost:8080/list
会报错 不会执行方法 只能输入localhost:8080/list?parentId=? 才能执行相应的方法
第二种 可带参数也可不带参数 就是说你输入 localhost:8080/list 以及 localhost:8080/list?parentId=? 方法都能执行
当然你也可以设置 @RequestParam 里面的required为false(默认为true 代表必须带参数) 这样就跟第二种是一样的了
如下:
[html] view
plain copy
@RequestMapping("/list")
public String test(@RequestParam(required=false) Long parentId) {
.....
}
当然你还可以设置里面的defaultValue的属性
如下:
[html] view
plain copy
@RequestMapping("/list")
public String test(@RequestParam(defaultValue="0") Long parentId) {
...
}
这样在地址里面也可以不带参数,如果带了参数会接收,不带参数会默认为0
里面还有一个value属性也讲一下, 前面所有的方法 传入的参数必须为parentId 才能接收到值
但是如果你加了value属性
[html] view
plain copy
@RequestMapping("/list")
public String test(@RequestParam(value="id") Long parentId) {
..
}
这样会用id 代替parentId 也就是说你地址里面传入的参数名称为id localhost:8080/list?id=? 这种
相关文章推荐
- 【springmvc】@RequestParam详解以及加与不加的区别
- 【springmvc】@RequestParam详解以及加与不加的区别
- 【springmvc】@RequestParam详解以及加与不加的区别
- springMVC注解中@RequestMapping中常用参数value params 以及@RequestParam 详解
- springMVC的注解@RequestParam与@PathVariable的区别
- springMVC的@RequestParam注解和@PathVariable注解的区别
- @RequestParam和不用的区别以及和 @PathVariable 的区别,简单易懂
- springmvc中@PathVariable和@RequestParam的区别
- bindParam和bindValue的区别以及在Yii2中的使用详解
- springMVC的注解@RequestParam与@PathVariable的区别
- springmvc中@PathVariable和@RequestParam的区别(百度收集)
- springMVC中RequestParam注解中name和value两个属性的区别
- springmvc中@PathVariable和@RequestParam的区别
- springmvc中@PathVariable 和 @RequestParam 的区别
- springmvc中@PathVariable和@RequestParam的区别【1】
- springmvc中@PathVariable和@RequestParam的区别
- springmvc的@RequestParam注解带参数和不带参数的区别?
- springMVC的@RequestParam注解和@PathVariable注解的区别
- @RequestParam和@RequestBody的区别-------springMVC
- springmvc中@RequestParam和@PathVariable的区别