SpringMVC获得请求数据
1、获得请求参数
客户端请求的格式:name=value&name=value…
SpringMVC可以接受以下类型的参数
⚪基本类型参数
⚪POJO类型参数
⚪数组类型参数
⚪集合类型参数
2、获得基本类型参数
Controller中的业务方法的参数名称要与请求参数的name一致,参数值会自动地映射匹配。
http://localhost:8080/test/quick?name=zhangsan&age=12
@RequestMapping("/quick11")
@ResponseBody//告知springmvc框架不进行视图跳转,直接进行数据响应
//期望springmvc自动将user转换成json格式的字符串
public void save11(String username,int age) throws IOException {
System.out.println(username);
System.out.println(age);
}
3、获得一个POJO类型参数
http://localhost:8080/user/quick12?username=wangwu&age=30
@RequestMapping("/quick12")
@ResponseBody//告知springmvc框架不进行视图跳转,直接进行数据响应
//期望springmvc自动将user转换成json格式的字符串
public void save12(User user) throws IOException {
System.out.println(user.toString());
}
4、获取数组类型的参数
http://localhost:8080/user/quick13?strs=111&strs=222&strs=333
@RequestMapping("/quick13")
@ResponseBody//告知springmvc框架不进行视图跳转,直接进行数据响应
//期望springmvc自动将user转换成json格式的字符串
public void save13(String[] strs) throws IOException {
System.out.println(Arrays.asList(strs));
}
5、获得集合类型参数
5.1、POJO方式
获得集合参数时,要将集合参数包装到一个POJO中才可以。
新建一个类初始化List
package com.qw.domain;
import java.util.List;
/**
* @author QBS @win10
* @version 1.0
* @date 2021/5/17 20:12
* 类说明
*/
public class VO {
private List<User> userList;
public List<User> getUserList() {
return userList;
}
public void setUserList(List<User> userList) {
this.userList = userList;
}
@Override
public String toString() {
return "VO{" +
"userList=" + userList +
'}';
}
}
编写相关jsp界面发送包含集合的请求
<%--
Created by IntelliJ IDEA.
User: SomeoneEighty
Date: 2021/5/17
Time: 20:16
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<form action="${pageContext.request.contextpath}/user/quick14" method="post">
<input type="text" name="userList[0].username"><br/>
<input type="text" name="userList[0].age"><br/>
<input type="text" name="userList[1].username"><br/>
<input type="text" name="userList[1].age"><br/>
<input type="submit"value="提交">
</form>
</body>
</html>
编写测试类
@RequestMapping("/quick14")
@ResponseBody//告知springmvc框架不进行视图跳转,直接进行数据响应
//期望springmvc自动将user转换成json格式的字符串
public void save14(VO vo) throws IOException {
System.out.println(vo);
}
测试
结果
当使用ajax提交时,可以指定contentType为json形式,那么在方法参数位置使用@RequestBoby可以直接接受集合而无需使用POJO进行包装。
5.2、注解方式
ajax.jsp编写模拟发送请求
http://localhost:8080/ajax.jsp
!!注意这里的jquery是字节跳动源,非本地js文件,如果使用本地js文件需要配置springmvc-config
<mvc:resources mapping="/js/**" location="/js/"/>
<%--
Created by IntelliJ IDEA.
User: SomeoneEighty
Date: 2021/5/17
Time: 22:33
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
<script src="https://s3.pstatp.com/cdn/expire-1-M/jquery/3.3.1/jquery.min.js"></script>
<script>
var userList = new Array();
userList.push({username:"zhangsan",age:18})
userList.push({username:"lisi",age:20})
$.ajax({
type:"POST",
url:"${pageContext.request.contextpath}/user/quick15",
data:JSON.stringify(userList),
contentType:"application/json;charset=utf-8"
})
</script>
</head>
<body>
</body>
</html>
编写测试类
@RequestMapping("/quick15")
@ResponseBody//告知springmvc框架不进行视图跳转,直接进行数据响应
//
public void save15(@RequestBody List<User> userList) throws IOException {
System.out.println(userList.toString());
}
控制台输出结果
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。