spring mvc传递list集合对象到后端方法实现

位置:首页>文章>详情   分类: 教程分享 > Java教程   阅读(1606)   2023-03-28 11:29:14

1.spring mvc 接收form表单传递的list对象集合处理

首先是前端页面代码:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8" />
<title>list对象参数测试</title>
</head>
<body>
	<h1>list对象参数测试</h1>
	<form action="/sendFormData.do" method="post">
		用户1姓名: <input type="text" name="param.users[0].name" /> 
		用户1性别 <input type="text" name="users[0].sex" /> 
		用户1年龄 <input type="number" name="users[0].age" />
		<hr />
		用户2姓名: <input type="text" name="param.users[1].name" /> 
		用户2性别 <input type="text" name="users[1].sex" /> 
		用户2年龄 <input type="number" name="users[1].age" />
		<button type="submit">提交</button>
	</form>
	<button type="button" id="json-btn">JSON集合对象参数测试</button>
</body>
</html>
注意:这里只用看form表单包裹的内容js部分是后面讲解ajax做的准备

spring mvc 的controller处理方法
@PostMapping("/sendFormData.do")
	public Object sendFormData(ParamVO users) {
		System.out.println(users.getUsers().size());
		return "/test";
	}
这里或许你看出来了使用的一个对象去接收form表单提交的数组。这个对象的内容如下
package com.example.vo;

import java.io.Serializable;
import java.util.List;
/**
 * 接收数组对象必须使用对象封装一次
 * @author xq
 *
 */
public class ParamVO implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	private List<UserVO> users;

	public List<UserVO> getUsers() {
		return users;
	}

	public void setUsers(List<UserVO> users) {
		this.users = users;
	}

}
spring mvc里面必须进行封装一次List<UserVO>集合就是我们需要得到的前端数据

2.spring mvc 接收ajax传递list集合对象方法实现

页面:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8" />
<title>list对象参数测试</title>
</head>
<body>
	<h1>list对象参数测试</h1>
	
	<button type="button" id="json-btn">JSON集合对象参数测试</button>
	<script type="text/javascript" src="/jquery.min.js"></script>
	<script type="text/javascript">
		$(function() {
			$('#json-btn').click(function() {
				send1();
			});
		});

		function send1() {
			var saveDataAry = [];
			var data1 = {
				"name" : "test",
				"sex" : "男",
				"age" : 20
			};
			var data2 = {
				"name" : "ququ",
				"sex" : "女",
				"age" : 30
			};
			saveDataAry.push(data1);
			saveDataAry.push(data2);
			$.ajax({
				type : "POST",
				url : "/sendData.json",
				dataType : "json",//必须json
				contentType : "application/json", // 指定这个协议很重要  
				data : JSON.stringify(saveDataAry),
				success : function(res) {
					alert("后端返回请求数据为:" + JSON.stringify(res));
				}
			});
		}
	</script>
</body>
</html>

注意点是ajax的设置
dataType : "json",//必须json
contentType : "application/json", // 指定这个协议很重要
后端spring mvc 接收方法:
    @PostMapping("/sendData.json")
	@ResponseBody
	public Object sendData(@RequestBody List<UserVO> users) {// @RequestBody该注解很重要
		System.out.println(users.size());
		for (UserVO userVO : users) {
			System.out.println(userVO.toString());
		}
		return users;
	}
地址:https://www.leftso.com/article/284.html

相关阅读

本文主要说明在spring mvc框架中如何接收前端发过来的集合对象和相关的处理。主要讲解两种方式,form表单提交方式和ajax提交的方式
Spring MVC 5 接受对象集合参数实战,在之前,我一直以为http传输的参数是KEY-VALUE键值对的方式和文件流的形式。直到最近遇到新需求才知道还有一种RAW的数据类型。通过这种原生...
javascript中onclick事件传递对象参数,javascript,javascript传递对象参数
spring validate 验证List集合演示用类User/Addressimport lombok.Data; import javax.validation.constraints....
数组转集合List&lt;String&gtl; list=Arrays.asList("1","2");注意转换出来的List为Arrays内部类集合,与常规的ArrayList有区别,比如常...
某些情况下,我们使用mybaties时需要使用IN(虽然IN数据多了效率不高,但是少量还是可以用得)条件查询,这时候我们就需要传递参数了,下面是mybaties处理IN条件得参数使用方法首先Ma...
Spring Boot Enums枚举参数传递
通过之前的一些文章spring boot 2.3 hibernate validate框架未引入-左搜 (leftso.com)Spring boot 参数分组校验-左搜 (leftso.com...
       ​Spring Boot       这里主要对Spring Boot 项目和Spring MVC 相关项目中,日期参数的使用以及Ajax请求日期数据返回格式的处理