SpringMVC请求数据详解讲解
作者:·~简单就好
Spring MVC 是 Spring 提供的一个基于 MVC 设计模式的轻量级 Web 开发框架,本质上相当于 Servlet,Spring MVC 角色划分清晰,分工明细,本章来讲解SpringMVC如何请求数据
一、RequestMapping注解
RequestMapping注解的作用是建立请求URL和处理方法之间的对应关系
RequestMapping注解可以作用在方法和类上
- 作用在类上:第一级的访问目录
- 作用在方法上:第二级的访问目录
- 细节:路径可以不编写 / 表示应用的根目录开始
1、RequestMapping的属性
path 指定请求路径的url
value value属性和path属性是一样的
mthod 指定该方法的请求方式
@Controller @RequestMapping(path = "/role") // 一级请求路径 public class RoleController { /** * /role/save * method="当前方法允许请求方式能访问" * params="请求路径上传参数" * @return */ @RequestMapping(path = "/save",method = {RequestMethod.GET}) public String save(){ System.out.println("保存角色..."); return "suc"; } @RequestMapping(value = "/delete") public String delete(){ System.out.println("删除角色..."); return "suc"; } }
2、RequestMapping的请求参数绑定
(1). 绑定机制
- 表单提交的数据都是k=v格式的 username=haha&password=123
- SpringMVC的参数绑定过程是把表单提交的请求参数,作为控制器中方法的参数进行绑定的
- 要求:提交表单的name和参数的名称是相同的
(2). 支持的数据类型
- 基本数据类型和字符串类型
- 实体类型(JavaBean)
- 集合数据类型(List、map集合等)
基本数据类型和字符串类型
- 提交表单的name和参数的名称是相同的
- 区分大小写
实体类型(JavaBean)
- 提交表单的name和JavaBean中的属性名称需要一致
- 如果一个JavaBean类中包含其他的引用类型,那么表单的name属性需要编写成:对象.属性 例如:address.name
- 给集合属性数据封装
- JSP页面编写方式:list[0].属性
二、RequestParam注解
作用:把请求中的指定名称的参数传递给控制器中的形参赋值
属性
- value:请求参数中的名称
- required:请求参数中是否必须提供此参数,默认值是true,必须提供
代码如下
import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @Controller @RequestMapping("/dept") public class DeptController { @RequestMapping("/save") public String save(@RequestParam(value = "username",required = false) String name){ System.out.println(name); return "suc"; } }
三、RequestBody注解
作用:用于获取请求体的内容(注意:get方法不可以):将前端的json对象转换成javabean实体对象
属性
required:是否必须有请求体,默认值是true
代码如下
@RequestMapping("/save2") public String save2(@RequestBody Student student){ System.out.println(body); return "suc"; }
四、RestFul风格
1、@PathVariable注解
url:
http://localhost:8080/SpringMVC/rest/commit.do/1/1
controller接收:用占位符的形式截取
//映射访问路径 @RequestMapping("/commit.do/{p1}/{p2}") public String index(@PathVariable int p1, @PathVariable String p2, Model model){ String result = p1+p2; //Spring MVC会自动实例化一个Model对象用于向视图中传值 model.addAttribute("msg", "结果:"+result); //返回视图位置 return "suc"; }
2、使用method属性指定请求类型
用于约束请求的类型,可以收窄请求范围。指定请求谓词的类型如GET, POST, HEAD, OPTIONS, PUT, PATCH, DELETE, TRACE等
到此这篇关于SpringMVC请求数据详解讲解的文章就介绍到这了,更多相关SpringMVC请求数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!