客户端请求参数的格式是:name=value&name=value…

服务器端要获得请求的参数,有时还需要进行数据的封装,封装到一个实体中。

SpringMVC可以接收如下的数据类型:

*基本类型参数

*POJO类型参数

*数组类型参数

*集合类型参数

(1)获取基本类型参数

Controller中的业务方法的参数名称要与请求参数的name一致,参数值会自动映射匹配

获取Java接口的注释内容 java注解获取请求参数_获取Java接口的注释内容

加@RequestBody注解,因为这个不跳转。加void,因为这个不回写,测试从浏览器中请求数据,controller能够接收到。

获取Java接口的注释内容 java注解获取请求参数_获取Java接口的注释内容_02

浏览器空白

获取Java接口的注释内容 java注解获取请求参数_java_03

控制台打印数据。

(2)获取POJO类型数据

Controller中的业务方法的POJO参数的属性名与亲求参数的name一致,参数值会自动映射匹配。框架就会把参数封装到实体中。

设置好封装类User.java,有get,set,toString方法

获取Java接口的注释内容 java注解获取请求参数_spring_04

Controller类方法的编写

获取Java接口的注释内容 java注解获取请求参数_spring_05

客户端请求给定 name 和age 两个参数,springmvc框架就能帮你封装到user对象中

获取Java接口的注释内容 java注解获取请求参数_ajax_06

获取Java接口的注释内容 java注解获取请求参数_获取Java接口的注释内容_07

(3)获取数组类型数据

Controller中的业务方法的数组名与亲求参数的name一致,参数值会自动映射匹配。

获取Java接口的注释内容 java注解获取请求参数_java_08

客户端请求

获取Java接口的注释内容 java注解获取请求参数_获取Java接口的注释内容_09

控制台

获取Java接口的注释内容 java注解获取请求参数_ajax_10

(4)获取集合类型数据

获取集合参数时,要将集合包装到一个POJO中才可以。

目的是将集合从客户端导入到controller中,由于不能直接在形参中写集合,故在形参中写pojo,把集合放入这个pojo中实现间接注入。

先创建Vo这个存放集合的pojo

获取Java接口的注释内容 java注解获取请求参数_spring_11

在controller中编写

获取Java接口的注释内容 java注解获取请求参数_ajax_12

由于集合中是User对象,不能直接用get注入,需要用表单jsp通过post注入

获取Java接口的注释内容 java注解获取请求参数_spring_13

获取Java接口的注释内容 java注解获取请求参数_ajax_14

点击提交会把数据存入vo对象中,控制台打印vo对象

获取Java接口的注释内容 java注解获取请求参数_学习_15

(5)ajax提交

使用ajax提交时,可以指定contentType为json格式,在方法参数位置使用@RequestBody注解就可以直接接收集合数据而无需用pojo进行包装

首先导入jquery-3.3.1.js

获取Java接口的注释内容 java注解获取请求参数_java_16

编写ajax.jsp

获取Java接口的注释内容 java注解获取请求参数_java_17

添加静态资源获取。

获取Java接口的注释内容 java注解获取请求参数_ajax_18

发送一个userList的ajax请求,userList中有两个对象,这两个对象的两个属性名跟User类中的两个属性名相同。

Controller中方法的形参就可以用集合获取

获取Java接口的注释内容 java注解获取请求参数_ajax_19

客户端访问

获取Java接口的注释内容 java注解获取请求参数_学习_20

控制台打印

获取Java接口的注释内容 java注解获取请求参数_学习_21