栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringMVC-接收请求参数

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringMVC-接收请求参数

在本章中,一心同学将会详细介绍Controller中是如何接收参数的,并通过通俗易懂的例子来给大家演示。

目录

1.普通类型传入参数

2.@RequestParam

2.1 value

2.2 required

2.3 defaultValue

3.普通类型数组的参数

4.@RequestHeader获取请求头入参

5.Pojo对象类型的参数

6.对象中套对象(级联属性)

结语


1.普通类型传入参数

在Controller的目标方法上直接设置方法的参数。就可以直接传入请求参数的值。

@Controller
public class BlogController {
 @RequestMapping(value="/blog")
 public String hello(String name){
 System.out.println(name+",hello");
 return "hello";
 }
}

浏览器:

后台输出:hello,yixin

注意:参数名必须和方法的参数名相匹配。

2.@RequestParam


可以使提交的域名称和处理方法的参数名不一致,只需跟@RequestParam里的参数一致即可。


注意:请求参数名blogname和方法参数名name的区别,这里也就相当于起别名。
 

@Controller
public class BlogController {
 @RequestMapping(value="/blog")
 public String hello(@RequestParam("blogname")String name){
 System.out.println(name+",hello");
 return "hello";
 }
}

浏览器:

2.1 value

(只有这个属性时,可以不写value)
@RequestParam("blogname")String name表示SpringMVC会自动将请求过来的参数blogname的值。注入到方法参数name中。

2.2 required

介绍:属性设置当前要求的blogname参数是否客户端必须传递。默认值是true表示必须传递。

如果没有传递就报错。

也可以手动修改为false。允许不传递值。则默认值是null

@Controller
public class BlogController {
 @RequestMapping(value="/blog")
 public String hello(@RequestParam(value = "blogname",required = false)String name){
 System.out.println(name+",hello");
 return "hello";
 }
}

浏览器:

2.3 defaultValue

介绍:属性设置当客户端没有传递值的时候。设置的默认值。

@Controller
public class BlogController {
 @RequestMapping(value="/blog")
 public String hello(@RequestParam(value = "blogname",defaultValue = "yixin")String name){
 System.out.println(name+",hello");
 return "hello";
 }
}
浏览器:

后台输出:
yixin,hello


3.普通类型数组的参数

对于数组中的元素,使用&进行连接。

@Controller
public class BlogController {
 @RequestMapping(value="/blog")
 public String hello(String[] names){
 if(names!=null) {
 for(String name:names)
 System.out.println(name + ",hello");
 }
 return "hello";
 }
}
 

浏览器:

后台输出:
yixin,hello
tom,hello

4.@RequestHeader获取请求头入参

@RequestMapping(value="/header")
public String header(@RequestHeader(value = "User-Agent") String userAgent,
 @RequestHeader(value = "Host") String host){
 System.out.println(userAgent);
 System.out.println(host);
 return "hello";
}
浏览器:

后台输出:

作用:可以通过这样获取到请求头信息,然后对headers进行控制
@RequestMapping(value="/blogs",headers = "User-Agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36")
public String hellos(Model model){
 model.addAttribute("msg","Hello,SpringMVCAnnotation!");
 return "hello";
}

5.Pojo对象类型的参数

介绍:要求提交的表单域和对象的属性名一致  , 参数使用对象即可。

实体类:

public class Blog {
 private int id;
 private String name;
//get,set,有参,无参
}
控制类:
@RequestMapping(value="/getblog")
public String getblog(Blog blog){
 System.out.println(blog);
 return "hello";
}

前端设计表单:

id:
name:

浏览器:

注意提交后的url:

后台输出:

Blog{id=1, name='yixin'}

注意:pojo对象自动入参的要求是客户端传递的参数名必须跟pojo对象的属性名对应上

6.对象中套对象(级联属性)

介绍:Author对象中套有blog对象。只需要传递参数。子对象名.属性名就可以自动的注入到Author对象的blog对象的属性中。

Author:

public class Author {
 private int id;
 private String name;
 private Blog blog;
 //get,set,有参,无参
}
 

Blog:

public class Blog {
 private int id;
 private String name;
//get,set,有参,无参
}
 

Controller:

@RequestMapping(value="/getauthor")
public String getauthor(Author author){
 System.out.println(author);
 return "hello";
}
 

前端表单:

id:
name:
blog.id:
blog.name:

运行
浏览器:



提交后的浏览器url:



后台输出:
Author{id=1, name='yixin', blog=Blog{id=2, name='tom'}}
 



结语

 

以上就是一心同学对SpringMVC-接收请求参数的讲解,有许多重要知识点,大家可以自己上机演示一下,收获也会颇多。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/658085.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号