Spring MVC 接收前端传递的表单json字符串
来源:互联网 发布:windows隐藏文件夹 编辑:程序博客网 时间:2024/05/22 02:20
Spring MVC 接收前端传递的表单json字符串
初衷
在编写页面表单数据较多,并且很多input来自于循环,没有对应的Pojo类与之映射。
在这种情况下,如果循环不是太多的话可以自己构建一个Pojo对象,然后使用SpringMVC的form标签进行绑定。
但是表单过于复杂后这种方式代码就显得非常臃肿。所以采取在前端页面将表单数据拼接成json字符串,然后传递到controller,controller中以字符串进行接收,再通过fastjson类似工具构建为json对象,然后进行解析。
下面开始具体操作
1.test页面代码
先编写页面,我们假设页面有多个name和value属性需要填写,通过foreach循环来生成多个输入框。该页面的文件名为test.jsp
<form id="form1" method="post"> <c:forEach items="${list}" var="aa"> <input name="name${aa}"/> <br/> <input name="value${aa}"/> <br/> </c:forEach> <button type="button" id="btn">提交</button></form>
2.test页面controller代码
对应的controller代码为:
@RequestMapping(value = "/test") public String test(Model model) { List<String> list = new ArrayList<String>(); list.add("1"); list.add("2"); model.addAttribute("list", list); return"test"; }
主要完成生成list,返回到页面。用于页面循环生成input。
3.表单提交
为了完成json转换后提交到后台,通过Ajax提交。
$("#btn").click(function () { var formData = $("#form1").serializeArray(); var d ={}; $.each(formData, function() { d[this.name] = this.value; }); console.log(JSON.stringify(d)) $.ajax({ type: "post", url:"/testResult", data:"str="+JSON.stringify(d), dataType: "json", ContentType: "application/json;charset=UTF-8", success: function (data) { if (data && data.success == "true") { window.location.href = data.view; } else { alert("error"); } } }); }) })
4.controller接收json
Controller中以字符串的形式进行接收,然后通过fastjson等工具转换为JSONObject对象,然后再根据值的类型选择相应的get方法进行取值即可。
@ResponseBody @RequestMapping(value = "testResult",method =RequestMethod.POST) public Map<String, Object> testResult(String str){ Map<String, Object> map = new HashMap<String, Object>(); //json字符串转换为json对象 JSONObject jsonObject = JSONObject.parseObject(str); //从json对象中取值,根据值的类型选择get方法 jsonObject.getString(""); map.put("success", "true"); map.put("view", "#"); return map; }
0 0
- Spring MVC 接收前端传递的表单json字符串
- spring mvc@requestBody接收json对象字符串
- asp.net MVC接收前端传递的复杂json对象的简单处理方法
- Spring MVC参数的传递与接收
- spring mvc 获取前端提交的表单
- spring mvc @InitBinder(前台ajax传过来的json字符串后台无法接收)
- 解决spring boot接收前端传递过来的json数据时,接收到的时间与实际传递时间不一致的问题
- spring mvc接收json参数
- spring mvc开发接收日期字段表单提交的问题
- Spring-mvc json 返回前端
- spring mvc 接收前台传来的json对象(转)
- Spring MVC的controller层接收前台传Json参数
- spring mvc 返回json字符串的配置
- spring mvc返回json字符串的方式
- Spring MVC之接收页面表单参数
- spring mvc 接收页面表单List
- Spring MVC 如何接收前端各种参数
- spring mvc redirect 传递参数 和接收
- 每日进步之leetcode第1题C++实现代码
- 1052. 卖个萌 (20)
- u-boot-2016.05移植:(1)、建立新板并配置,使能正常编译通过
- 程序猿如何预估工时之二
- Java中只有按值传递,没有按引用传递!
- Spring MVC 接收前端传递的表单json字符串
- ggplot
- 栈帧分析
- App上架流程
- JVM工具jmap、jconsole、jstack、jstat、Javap检测内存泄漏问题
- IOS学习之核心动画-粒子效果
- 视频播放遇到的坑(新手)
- 机器学习系列:(一)机器学习基础
- 动态规划的基础模板