SpringMVC将表单对象序列化成Json字符串提交,以List接收
2017-05-09 12:01
676 查看
HTML
JAVA
启动SpringMVC的注解功能,完成请求和注解POJO的映射
POM
JS
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" isELIgnored="false"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <c:set var="ctx" value="${pageContext.request.contextPath}"/> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>submitUserList_4</title> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <script language="JavaScript" src="${ctx }/js/jquery-3.1.1.min.js" ></script> <script language="JavaScript" src="${ctx }/js/parseJson.js" ></script> <script type="text/javascript" language="JavaScript"> //将表单序列化成json格式的数据(但不适用于含有控件的表单,例如复选框、多选的select) function submitUserList_4() {alert("ok"); var jsonStr = $("#form1"). serializeJson(); //console.log("jsonStr:\r\n" + jsonStr); //alert(jsonStr); $.ajax({ url : "${ctx}/test/getJsList", type : "POST", contentType : 'application/json;charset=utf-8', //设置请求头信息 dataType : "json", data : jsonStr, success : function(data) { alert(data); }, error : function(res) { alert(res.responseText); } }); } </script> </head> <body> <h1>submitUserList_4</h1> <form id="form1"> age:<input type="text" name="age" value="11"><br/> name:<input type="text" name="name" value="jack"><br/> sex:<input type="text" name="sex" value="男"><br/><br/> age:<input type="text" name="age" value="12"><br/> name:<input type="text" name="name" value="rose"><br/> sex:<input type="text" name="sex" value="女"><br/><br/> <input type="button" value="submit" onclick="submitUserList_4();"> </form> </body> </html>
JAVA
@RequestMapping(value = "/submitUserList_4", method ={RequestMethod.POST}) @ResponseBody public String submitUserList_4(@RequestBody List<User> users) throws Exception{ String result = ""; if(users == null || users.size() <= 0){ return "No any ID.中文"; } result = this.showUserList(users); return result;
启动SpringMVC的注解功能,完成请求和注解POJO的映射
<!-- 自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器 --> <context:component-scan base-package="com.leon" /> <!--避免IE执行AJAX时,返回JSON出现下载文件 --> <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> </list> </property> </bean> <!-- 启动SpringMVC的注解功能,完成请求和注解POJO的映射 --> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="mappingJacksonHttpMessageConverter" /> <!-- JSON转换器 --> </list> </property> </bean>
POM
<!-- 映入JSON --> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.9.13</version> </dependency>
JS
$.fn.serializeJson = function(){ var jsonData1 = {}; var serializeArray = this.serializeArray(); // 先转换成{"id": ["12","14"], "name": ["aaa","bbb"], "pwd":["pwd1","pwd2"]}这种形式 $(serializeArray).each(function () { if (jsonData1[this.name]) { if ($.isArray(jsonData1[this.name])) { jsonData1[this.name].push(this.value); } else { jsonData1[this.name] = [jsonData1[this.name], this.value]; } } else { jsonData1[this.name] = this.value; } }); // 再转成[{"id": "12", "name": "aaa", "pwd":"pwd1"},{"id": "14", "name": "bb", "pwd":"pwd2"}]的形式 var vCount = 0; // 计算json内部的数组最大长度 for(var item in jsonData1){ var tmp = $.isArray(jsonData1[item]) ? jsonData1[item].length : 1; vCount = (tmp > vCount) ? tmp : vCount; } if(vCount > 1) { var jsonData2 = new Array(); for(var i = 0; i < vCount; i++){ var jsonObj = {}; for(var item in jsonData1) { jsonObj[item] = jsonData1[item][i]; } jsonData2.push(jsonObj); } return JSON.stringify(jsonData2); }else{ return "[" + JSON.stringify(jsonData1) + "]"; } };
相关文章推荐
- SpringMVC将表单对象序列化成Json字符串提交,以List接收
- Json对象与Json字符串互转(4种转换方式)表单提交和表单序列化
- 4种方法让SpringMVC接收多个对象 List<user> 表单提交,以BeanListModel接收
- SpringMVC接收json字符串转为List对象(数组对象)
- Jquery 将表单序列化为Json对象.同时提交多个表单的参数
- 前端表单方式提交,SpringMVC后端以对象参数形式接收
- js将form表单序列化[json字符串、数组、对象]
- Ajax提交Json字符串,.net反序列化成Model对象
- Ajax异步提交List对象,SpringMvc如何接收?
- 后台接收前台Json字符串转对象,对象属性是List对象类型。
- SpringMVC的接口,接收json数据返回json数据并且解析为List对象集合
- C#将58同城商圈接口返回Json字符串反序列化成List对象类集合绑定DropdownList
- 将任意一个jQuery对象进行表单序列化,免除了提交请求时大量拼写表单数据的烦恼,支持键值对<name&value>格式和JSON格式。
- jsp页面的ajax和form表单提交后接收数据的区别(SpringMVC控制器返回Map对象)
- C#将Json字符串反序列化成List对象类集合
- jQuery实现ajax提交form表单(可以是提交json),用springmvc接收。图文详解
- C#将Json字符串反序列化成List对象类集合
- SpringMVC form表单提交list对象集合
- SpringMVC接收 JSONArray 自动转换为 List对象
- js将form内的表单序列化为json字符串、数组、对象