SpringMVC @RequestParam 注解加与不加的区别

以前写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=? 这种

原文地址:https://www.cnblogs.com/CodingUniversal/p/9429579.html

时间: 2024-08-02 09:33:03

SpringMVC @RequestParam 注解加与不加的区别的相关文章

href 里面 链接前面加/与不加的区别?(绝对路径与相对路径)

在写href链接时,有绝对路径与相对路径,href 里面 链接前面加/与不加的区别? href="/cp/images/lis.jpg" 相对路径 cp前面/会获取当前路径,组合成一个完整路径 去定位资源 href="cp/images/lis.jpg" 绝对路径 直接上cp/images/lis.jpg 去定位资源 href="http://www.lib.com/cp/images/lib.png" 绝对路径

@RequestParam加与不加的区别

最简单的两种写法,加或不加@RequestParam注解 @RequestMapping("/list") public String test(int userId) { return "list"; } @RequestMapping("/list") public String test(@RequestParam int userId) { return "list"; } 第一种写法参数为非必传,第二种写法参数为必传

路径加/与不加/的区别

内容整合自百度: 加"/"是代表绝对路径,不加"/"是代表相对路径 前面一个是绝对路径,后面一个是相对路径. 假设你的这个html文件的路径是www.example.com/path/to/html/a.html, 那么src="/js/ibanner.js"指向www.example.com/js/ibanner.js, src="js/ibanner.js"指向www.example.com/path/to/html/js

js调用函数时括号加与不加的区别,function()&function

<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>当前系统时间</title> <link rel="stylesheet" href="style.css" /> <scri

rediret 加/与不加/的区别

原文地址:https://www.cnblogs.com/classmethond/p/10666201.html

springMVC的注解@RequestParam与@PathVariable的区别

1.在SpringMVC后台控制层获取参数的方式主要有两种, 一种是request.getParameter("name"),另外一种是用注解@RequestParam直接获取. 这里主要讲这个注解 @RequestParam 接下来我们看一下@RequestParam注解主要有哪些参数: value:参数名字,即入参的请求参数名字,如username表示请求的参数区中的名字为username的参数的值将传入: required:是否必须,默认是true,表示请求中一定要有相应的参数,

springMVC笔记系列(8)——RequestParam注解

前面的文章介绍过注解@PathVariable,它能够为Rest风格的URL用占位符的方式传递一个参数,但是这个参数并不是真正意义上的请求参数.请求参数怎么处理是本文的主要内容. Spring MVC 通过分析处理方法的签名,将 HTTP 请求信息绑定到处理方法的相应人参中. Spring MVC 对控制器处理方法签名的限制是很宽松的,几乎可以按喜欢的任何方式对方法进行签名. 必要时可以对方法及方法入参标注相应的注解(@PathVariable. @RequestParam. @RequestH

springMVC中@RequestParam注解的用法

springMVC中@RequestParam注解用在Controller层获解析.提取参数,当然你也可以用request.getParameter("name")来获取参数,而@RequestParam注解接收参数有几种不同的写法. 1.test(String name) 像正常的方法接收参数,不带@RequestParam注解.这种写法,如果没有name参数不会报错. 2.test(@RequestParam String name) 带@RequestParam注解.这种写法,n

set @sql=N&#39;q&#39;,这里的N是什么意思,加与不加有什么区别

用来支持UNICODE字符的,不加的话,如果sql语句中有Unicode字符会认不出来 set @sql=N'q',这里的N是什么意思,加与不加有什么区别 原文地址:https://www.cnblogs.com/xyao1/p/8549289.html