SpringMVC请求数据详解讲解

目录
  • 一、RequestMapping注解
    • 1、RequestMapping的属性
    • 2、RequestMapping的请求参数绑定
  • 二、RequestParam注解
  • 三、RequestBody注解
  • 四、RestFul风格
    • 1、@PathVariable注解
    • 2、使用method属性指定请求类型

一、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请求数据内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 关于SpringMVC请求域对象的数据共享问题

    SpringMVC支持路径中的占位符. 可以通过路径的方式来传参.restful风格.使用{}做占位符在路径中指定参数,使用@PathVariable注解在参数列表中指定. <a th:href="@{/test/1}">传了参数</a> @RequestMapping("/test/{id}") public String test(@PathVariable("id")Integer id){ System.out.p

  • SpringMVC 跨重定向请求传递数据的方法实现

    执行完post请求后,通常来讲一个最佳实践就是执行重定向.重定向将丢弃原始请求数据,原始请求中的模型数据和请求都会消亡.可以有效避免用户浏览器刷新或者后退等操作,直接间接地重复执行已经完成的post请求. 在控制方法中返回的视图名称中,在String前使用"redirect:"前缀,那么这个String就不是来查找视图的,而是浏览器进行重定向的路径,相当于重新发出请求. 重定向通常相当于从一个controller到另一个controller. (1)使用URL模板以路径变量和查询参数的

  • SpringMVC 重新定向redirect请求中携带数据方式

    目录 SpringMVC 重新定向redirect请求中携带数据 使用URL模版重定向 使用flash属性 SpringMVC 几种重定向携带数据方法 1.拼接字符串 2.采用RedirectAttribute来传参数 3.RedirectAttribute-–addFlashAttribute()的用法 SpringMVC 重新定向redirect请求中携带数据 在控制器方法返回的视图名称中使用了redirect:前缀,这时返回的String不是用来寻找视图,而是浏览器进行跳转的路径: ret

  • Springmvc处理ajax请求并返回json数据

    ①在springmvc方法上添加@ResponseBody注解,springmvc会将数据转换成json并返回: @ResponseBody //指定返回json数据,不跳转页面 @RequestMapping("/list") public List<User> list(User user){ System.out.println("获取到异步请求数据:"+user); //todo 根据条件做数据库查询,返回结果集合 ArrayList<Us

  • SpringMVC详解如何映射请求数据

    目录 1.获取参数值 1.说明 2.应用实例 3.获取http请求消息头 2.获取 javabean 形式的数据 1.使用场景说明 2.应用实例 3.使用注意事项 3.获取Servlet API 1.应用实例 2.使用注意事项 1.获取参数值 1.说明 开发中,如何获取到 http://xxx/url?参数名=参数值&参数名=参数值 这个使用的非常广泛,我们看一个案例 2.应用实例 1.创建\web\requestparam\VoteHandler.java @Controller @Reque

  • Springmvc获取前台请求数据过程解析

    1)基本数据类型或String,在方法参数中定义参数,参数名与请求传递数据名一致即可自动封装: // RequestMapping:指定方法对应的请求地址 //return:页面地址,表示方法执行完成之后跳转到对应的页面(转发) //springmvc:接收请求参数,直接在方法的参数中定义名称与传递参数名一致的形参即可 //name:会自动接收请求传递的name值 @RequestMapping("/hello") public String hello(String name,Int

  • SpringMVC解析JSON请求数据问题解析

    这几年都在搞前后端分离.RESTful风格,我们项目中也在这样用.前几天有人遇到了解析JSON格式的请求数据的问题,然后说了一下解析的方式,今天就写篇文章简单的分析一下后台对于JSON格式请求数据是怎么解析的. 先把例子的代码贴出来: 前端 <input type="button" value="测试JSON数据" onclick="testJSON()" /> <script type="text/javascrip

  • Java超详细讲解SpringMVC如何获取请求数据

    目录 1.获得请求参数 1)基本类型参数:​​​​​​​   2)POJO类型参数: 3)数组类型参数   4)集合类型参数   2.请求乱码问题 3.参数绑注解@RequestParam​​​​​​​ 4.获得Restful风格的参数 5.自定义类型转换器 6.获得请求头 7.文件上传 8.小结 1.获得请求参数 客户端请求参数的格式是:name=value&name=value- - 服务器端要获得请求的参数,有时还需要进行数据的封装,SpringMVC可以接收如下类型的参数: 1)基本类型

  • 使用springmvc的controller层获取到请求的数据方式

    目录 content-type 1.application/x-www-form-urlencoded 1.1 String 参数值=reqeust.getParameter("参数名"); 1.2 Map<String,String[]> paramMap=request.getParameterMap(); 2.multipart/form-data 3.text/xml 4.application/json 4.1 页面请求的数据获取 4.1.1 页面js请求如下 4

  • SpringMVC请求数据详解讲解

    目录 一.RequestMapping注解 1.RequestMapping的属性 2.RequestMapping的请求参数绑定 二.RequestParam注解 三.RequestBody注解 四.RestFul风格 1.@PathVariable注解 2.使用method属性指定请求类型 一.RequestMapping注解 RequestMapping注解的作用是建立请求URL和处理方法之间的对应关系 RequestMapping注解可以作用在方法和类上 作用在类上:第一级的访问目录 作

  • Java Spring MVC获取请求数据详解操作

    目录 1. 获得请求参数 2. 获得基本类型参数 3. 获得POJO类型参数 4. 获得数组类型参数 5. 获得集合类型参数 6. 请求数据乱码问题 7. 参数绑定注解 @requestParam 8. 获得Restful风格的参数 9. 自定义类型转换器 1.定义转换器类实现Converter接口 2.在配置文件中声明转换器 3.在<annotation-driven>中引用转换器 10. 获得Servlet相关API 11. 获得请求头 11.1 @RequestHeader 11.2 @

  • node.js根据不同请求路径返回不同数据详解流程

    目录 1.学习根据不同的请求路径返回:不同数据 2.发送的数据:数据类型,和什么编码:Content-Type 3.关于读入文件的:相对路径和绝对路径: 4.读图片 1.学习根据不同的请求路径返回:不同数据 var url=req.url //获取req.url值(req:是request简写) req.url: 获取的是端口号之后的路径 实现不同路径返回不同数据 我的端口号:3000,网址:http://127.0.0.1:3000 if(url==='/'){ res.end('index

  • Spring实现处理跨域请求代码详解

    一次正常的请求 最近别人需要调用我们系统的某一个功能,对方希望提供一个api让其能够更新数据.由于该同学是客户端开发,于是有了类似以下代码. @RequestMapping(method = RequestMethod.POST, value = "/update.json", produces = MediaType.APPLICATION_JSON_VALUE) public @ResponseBody Contacter update(@RequestBody Contacter

  • Flutter Http网络请求实现详解

    Http网络请求是一门开发语言里比较常用和重要的功能,主要用于资源访问.接口数据请求和提交.上传下载文件等等操作,Http请求方式主要有:GET.POST.HEAD.PUT.DELETE.TRACE.CONNECT.OPTIONS.本文主要GET和POST这两种常用请求在Flutter中的用法,其中对POST将进行着重讲解.Flutter的Http网络请求的实现主要分为三种:io.dart里的HttpClient实现.Dart原生http请求库实现.第三方库实现.后面将会给大家详细讲解这几种区别

  • SpringMVC @RequestMapping注解详解

    目录 一.@RequestMapping 1.@RequestMapping注解的功能 2.@RequestMapping注解的位置 二.@RequestMapping注解的属性 1.value属性(掌握) 2.method属性(掌握) 3.params属性(了解) 4.headers属性(了解) 5.SpringMVC支持ant风格的路径 6.SpringMVC支持路径中的占位符(重点) 三.@RequestMapping的派生类注解 测试form表单是否支持put或delete方式的请求 一

  • SpringMVC视图作用详解

    目录 一.ThymeleafView 二.转发视图 三.重定向视图 四.视图控制器view-controller SpringMVC中的视图是View接口,视图的作用渲染数据,将模型Model中的数据展示给用户 SpringMVC视图的种类很多,默认有转发视图和重定向视图 当工程引入jstl的依赖,转发视图会自动转换为JstlView 若使用的视图技术为Thymeleaf,在SpringMVC的配置文件中配置了Thymeleaf的视图解析器,由此视 图解析器解析之后所得到的是ThymeleafV

  • JSONP跨域请求实例详解

    JSOP简介 JSONP(JSON with Padding)是JSON的一种"使用模式",可用于解决主流浏览器的跨域数据访问的问题.由于同源策略,一般来说位于 server1.example.com 的网页无法与不是 server1.example.com的服务器沟通,而 HTML 的<script> 元素是一个例外.利用 <script> 元素的这个开放策略,网页可以得到从其他来源动态产生的 JSON 资料,而这种使用模式就是所谓的 JSONP.用 JSON

  • JS JSOP跨域请求实例详解

    在项目开发中遇到跨域的问题,一般都是通过JSONP来解决的.但是JSONP到底是个什么东西呢,实现的原理又是什么呢.在项目的空闲时间可以好好的来研究一下了. 1.什么是JSONP? 要了解JSONP,不得不提一下JSON,那么什么是JSON? JSON is a subset of the object literal notation of JavaScript. Since JSON is a subset of JavaScript, it can be used in the langu

  • MySQL数据库使用mysqldump导出数据详解

    mysqldump是mysql用于转存储数据库的客户端程序.它主要产生一系列的SQL语句,可以封装到文件,该文件包含有所有重建您的数据库所需要的 SQL命令如CREATE DATABASE,CREATE TABLE,INSERT等等.可以用来实现轻量级的快速迁移或恢复数据库.是mysql数据库实现逻辑备份的一种方式. 在日常维护工作当中经常会需要对数据进行导出操作,而mysqldump是导出数据过程中使用非常频繁的一个工具:它自带的功能参数非常多,文章中会列举出一些常用的操作,在文章末尾会将所有

随机推荐