SpringMVC请求数据详解讲解

作者:·~简单就好 时间:2021-09-13 08:56:56 

一、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等

来源:https://blog.csdn.net/qq_45830276/article/details/125544382

标签:SpringMVC,请求,数据
0
投稿

猜你喜欢

  • gson对象序列化的示例

    2023-11-25 08:54:28
  • Java中的匿名内部类小结

    2021-05-29 06:29:38
  • Java实现简单的日历界面

    2021-10-08 03:13:01
  • SpringBoot+Netty+WebSocket实现消息发送的示例代码

    2023-08-16 00:02:52
  • C#模拟实现QQ窗体功能

    2021-07-17 02:49:11
  • C#实现扫描枪扫描二维码并打印(实例代码)

    2023-02-26 18:02:56
  • MyBatis-Plus QueryWrapper及LambdaQueryWrapper的使用详解

    2021-07-02 03:06:16
  • spring boot 下对JSON返回值去除null和空字段操作

    2022-11-06 20:06:52
  • C#生成随机数实例

    2023-09-17 23:28:28
  • Spring-boot 2.3.x源码基于Gradle编译过程详解

    2022-04-07 15:41:36
  • RocketMQ特性Broker存储事务消息实现

    2022-07-10 20:42:13
  • spring中的注解事务演示和添加步骤详情

    2023-03-03 08:32:48
  • spring boot 加载web容器tomcat流程源码分析

    2021-12-05 14:48:38
  • C# WinForm 判断程序是否已经在运行,且只允许运行一个实例,附源码

    2021-11-06 14:10:07
  • 利用C#编写扫雷游戏(附源码)

    2022-01-31 11:35:53
  • 利用Lambda表达式创建新线程案例

    2023-08-26 23:16:00
  • mybatis查询返回Map<String,Object>类型的讲解

    2022-12-25 02:07:38
  • Java日期时间类(Date、DateFormat、Calendar)解析

    2022-08-06 18:02:14
  • SpringBoot java-jar命令行启动原理解析

    2022-02-02 10:32:22
  • 解决Spring在Thread中注入Bean无效的问题

    2022-06-26 13:03:59
  • asp之家 软件编程 m.aspxhome.com