客户端请求参数的格式是:name=value&name=value…
服务器端要获得请求的参数,有时还需要进行数据的封装,封装到一个实体中。
SpringMVC可以接收如下的数据类型:
*基本类型参数
*POJO类型参数
*数组类型参数
*集合类型参数
(1)获取基本类型参数
Controller中的业务方法的参数名称要与请求参数的name一致,参数值会自动映射匹配
加@RequestBody注解,因为这个不跳转。加void,因为这个不回写,测试从浏览器中请求数据,controller能够接收到。
浏览器空白
控制台打印数据。
(2)获取POJO类型数据
Controller中的业务方法的POJO参数的属性名与亲求参数的name一致,参数值会自动映射匹配。框架就会把参数封装到实体中。
设置好封装类User.java,有get,set,toString方法
Controller类方法的编写
客户端请求给定 name 和age 两个参数,springmvc框架就能帮你封装到user对象中
(3)获取数组类型数据
Controller中的业务方法的数组名与亲求参数的name一致,参数值会自动映射匹配。
客户端请求
控制台
(4)获取集合类型数据
获取集合参数时,要将集合包装到一个POJO中才可以。
目的是将集合从客户端导入到controller中,由于不能直接在形参中写集合,故在形参中写pojo,把集合放入这个pojo中实现间接注入。
先创建Vo这个存放集合的pojo
在controller中编写
由于集合中是User对象,不能直接用get注入,需要用表单jsp通过post注入
点击提交会把数据存入vo对象中,控制台打印vo对象
(5)ajax提交
使用ajax提交时,可以指定contentType为json格式,在方法参数位置使用@RequestBody注解就可以直接接收集合数据而无需用pojo进行包装
首先导入jquery-3.3.1.js
编写ajax.jsp
添加静态资源获取。
发送一个userList的ajax请求,userList中有两个对象,这两个对象的两个属性名跟User类中的两个属性名相同。
Controller中方法的形参就可以用集合获取
客户端访问
控制台打印