以前写controller层的时候都是默认带上 @RequestParam 的, 今天发现不加@RequestParam 也能接收到参数

下面我们来区分一下加与不加的区别

这里有两种写法

  1. @RequestMapping("/list")
  2. public String test(@RequestParam  Long parentId) {
  3. }
  1. @RequestMapping("/list")
  2. public String test( Long parentId) {
  3. }

第一种必须带有参数,也就是说你直接输入localhost:8080/list 会报错 不会执行方法 只能输入localhost:8080/list?parentId=? 才能执行相应的方法

第二种 可带参数也可不带参数  就是说你输入  localhost:8080/list  以及 localhost:8080/list?parentId=?  方法都能执行

当然你也可以设置 @RequestParam 里面的required为false(默认为true 代表必须带参数) 这样就跟第二种是一样的了

如下:

  1. @RequestMapping("/list")
  2. public String test(@RequestParam(required=false)  Long parentId) {
  3. .....
  4. }

当然你还可以设置里面的defaultValue的属性

如下:

  1. @RequestMapping("/list")
  2. public String test(@RequestParam(defaultValue="0")  Long parentId) {
  3. ...
  4. }

这样在地址里面也可以不带参数,如果带了参数会接收,不带参数会默认为0

里面还有一个value属性也讲一下, 前面所有的方法 传入的参数必须为parentId 才能接收到值

但是如果你加了value属性

  1. @RequestMapping("/list")
  2. public String test(@RequestParam(value="id")  Long parentId) {
  3. ..
  4. }

这样会用id 代替parentId  也就是说你地址里面传入的参数名称为id localhost:8080/list?id=? 这种

最新文章

  1. Python学习总结 03 Plotly 学习总结
  2. Hibernate 一对多 保存和修改数据
  3. Java数据结构和算法之数组与简单排序
  4. [Delphi]Delphi开发的一些技巧
  5. 54.xilinx_modelsim仿真错误1
  6. Hibernate笔记——(ONE TO ONE)一对一
  7. WordPress 主题框架是如何工作的
  8. HDOJ1175连连看 DFS
  9. iOS-MVVM--备用
  10. [Hapi.js] Request Validation with Joi
  11. [转载] 编程每一天(Write Code Every Day)
  12. 笔记+R︱信用风险建模中神经网络激活函数与感知器简述
  13. git报错:'fatal:remote origin already exists
  14. Python Django 配置QQ邮箱发送邮件
  15. Jupyter Notebook 的快捷键
  16. bus总线
  17. canvas-tangram.html
  18. jPlayer插件的使用
  19. android studio中使用git版本管理
  20. SERVICE问题解决方法

热门文章

  1. 每个程序中只有一个public类,主类?
  2. SDUT 3362 数据结构实验之图论六:村村通公路
  3. AbstractBootstrap的研读
  4. 关于集合的小demo
  5. java全栈day02案例
  6. STL 结构体 内部函数
  7. SSH 前言(JDK静态代理和动态代理)
  8. SpringMVC的理解
  9. c#继承、多重继承
  10. (转)Haar-like矩形遍历检测窗口演示Matlab源代码