springMVC绑定json参数之二(2.1.1)
二、springmvc 接收不同格式的json字符串
1.首先扫盲几个知识点:
例子如下:
前台传递json对象(这里uu[0]的名字uu要和Test对象中的属性List<User>名称对应):
1 test = function () {
2
3 jQuery.ajax({
4 url : cur_url+"/weekly/test",
5 type : 'post',
6 data : {"jsonObjName":"123","id":456,"uu[0].userName":"hxy1","uu[0].address":"add1",
7 "uu[1].userName":"hxy2","uu[1].address":"add2"},
8 dataType : 'json',
9 success : function (data, textStatus) {
10 console.info(data);
11 console.info(data.length);
12 for ( var i = 0; i < data.length; i++) {
13 console.info(i + ":" + data[i].address);
14 console.info(i + ":" + data[i].userName);
15 }
16 alert("test success!");
17 },
18 error:function(){
19 alert("test error!");
20 }
21 });
22 };
后台接收(不使用@requestBody标签):
1 @RequestMapping("/test")
2 @ResponseBody
3 public List<User> test(String jsonObjName, Integer id, Test t1) {
4 List<User> uList = t1.getUu();
5 for (User user : uList) {
6 System.out.println(user);
7 System.out.println("address:" + user.getAddress());
8 System.out.println("userName:" + user.getUserName());
9 }
10 return uList;
11
12 }
Test对象定义如下:
1 package testVO;
2
3 import java.util.List;
4
5 public class Test {
6
7 private List<User> uu;
8 private String jsonObjName;
9 private Integer id;
10
11
12
13
14 public String getJsonObjName() {
15 return jsonObjName;
16 }
17
18 public void setJsonObjName(String jsonObjName) {
19 this.jsonObjName = jsonObjName;
20 }
21
22 public Integer getId() {
23 return id;
24 }
25
26 public void setId(Integer id) {
27 this.id = id;
28 }
29
30 public List<User> getUu() {
31 return uu;
32 }
33
34 public void setUu(List<User> uu) {
35 this.uu = uu;
36 }
37
38 }
注意:
其实ajax只传递json对象,和表单提交绑定参数一样,和技术无关,用springmvc,struts2都可以绑定,这种方式和ajax序列化表单对象传递是一样的:$("form").serialize(),只不过如果想在ajax传递json对象直接绑定到springmvc对象中就必须使用@RequestBody标签,前台也要遵循传json字符串和指定contentType:"application/json",参考上一节,@RequestBody标签的存在就是方便json对象的绑定,ajax中不用麻烦的构造表单的json对象。
追加一点,如果ajax传递json对象(不是json字符串),并且是json简单数组对象(String[],Integer[]等),类似表单提交,后台也不用@RequestBody接收,而是如下接收:
public JsonResultForProject<List<TapeoutCheckTable>> todoTapeoutCheckList(Model model,
@RequestParam(required = false, value = "tapoutDomainIdss[]") List<Integer> tapoutDomainIdss,
@RequestParam(required = false, value = "pdLocationIdss[]") List<Integer> pdLocationIdss,
@RequestParam(required = false, value = "yearStrss[]") List<Integer> yearStrss,
@RequestParam(required = false, value = "dftLocationIdss[]") List<Integer> dftLocationIdss,
String projectNamess, TapeoutCheckQueryVo tcVo,String tabType)
@RequestParam
A) 常用来处理简单类型的绑定,通过 Request.getParameter() 获取的String可直接转换为简单类型的情况( String--> 简单类型的转换操作由ConversionService配置的转换器来完成);因为使用request.getParameter()方式获取参数,所 以可以处理get 方式中queryString的值,也可以处理post方式中 body data的值;
B)用来处理Content-Type: 为 application/x-www-form-urlencoded编码的内容,提交方式GET、POST;
C) 该注解有两个属性: value、required; value用来指定要传入值的id名称,required用来指示参数是否必须绑定;
例子中value中的值tapoutDomainIdss名字和ajax中json对象中的key相同,对应的值为整形的数组。
springMVC绑定json参数之二(2.1.1)的更多相关文章
- springMVC绑定json参数之二(2.1)
二.springmvc 接收不同格式的json字符串 1.首先扫盲几个知识点: 这个绑定json参数讲的都是用@RequestBody标签,所以前台必须传json字符串,不能是json对象,但是如果不 ...
- springMVC绑定json参数之二(2.2.4)
二.springmvc 接收不同格式的json字符串 4).格式四:json传递复杂对象(对象中有属性,还有List,这里验证数组接收,不用List,其他的和上一节不变) 测试一: Test对象属性如 ...
- springMVC绑定json参数之二(2.2.3)
二.springmvc 接收不同格式的json字符串 4).格式四:json传递复杂对象(对象中有属性,还有List) 复杂对象: package testVO; import java.util.L ...
- springMVC绑定json参数之二(2.2.2)
二.springmvc 接收不同格式的json字符串 2).格式二:json字符串数组 前台: test = function () { var test = ["123",&qu ...
- springMVC绑定json参数之二(2.2.1)
二.springmvc 接收不同格式的json字符串 2.扫盲完了继续测试springmvc 接收不同格式的json字符串 1).格式一:json简单数组对象 前台两种传递方式: 方式一(需要拼接js ...
- springMVC绑定json参数之一
一.SpringMVC @RequestBody接收Json对象字符串 以前,一直以为在SpringMVC环境中,@RequestBody接收的是一个Json对象,一直在调试代码都没有成功,后来发现, ...
- SpringMVC接受JSON参数详解及常见错误总结我改
SpringMVC接受JSON参数详解及常见错误总结 最近一段时间不想使用Session了,想感受一下Token这样比较安全,稳健的方式,顺便写一个统一的接口给浏览器还有APP.所以把一个练手项目的前 ...
- SpringMVC接受JSON参数详解及常见错误总结
SpringMVC接受JSON参数详解及常见错误总结 SpringMVC接受JSON参数详解及常见错误总结 最近一段时间不想使用Session了,想感受一下Token这样比较安全,稳健的方式,顺便写一 ...
- SpringMVC接受JSON参数详解
转:https://blog.csdn.net/LostSh/article/details/68923874 SpringMVC接受JSON参数详解及常见错误总结 最近一段时间不想使用Session ...
随机推荐
- 忘记apple id如何更新应用?
最近ytkah的app有很多更新提示,之前注册的apple id好久没登录了,突然提示说登录需要验证安全问题,哪还记得噢,最要命的是邮箱收到的加密邮件也需要验证.重新注册一个吧,这次要注意保存相关信息 ...
- spark 在yarn执行job时一直抱0.0.0.0:8030错误
近日新写完的spark任务放到yarn上面执行时,在yarn的slave节点中一直看到报错日志:连接不到0.0.0.0:8030 . The logs are as below: 2014-08-11 ...
- Windows平台下搭建Git服务器的图文教程(转发)
Git没有客户端服务器端的概念,但是要共享Git仓库,就需要用到SSH协议(FTP , HTTPS , SFTP等协议也能实现Git共享,此文档不讨论),但是SSH有客户端服务器端,所以在window ...
- 读paper:image caption with global-local attention…
最近的图片caption真的越来越火了,CVPR ICCV ECCV AAAI很多顶级会议都有此类的文章,今天我来讲一篇发表在AAAI的文章,因为我看了大量的论文,最近感觉AAAI越来越水了.所以这篇 ...
- Kattis - names Palindrome Names 【字符串】
题目链接 https://open.kattis.com/problems/names 题意 给出一个字符串 有两种操作 0.在字符串的最末尾加一个字符 1.更改字符串中的一个字符 求最少的操作步数使 ...
- spring-boot2
1.Spring Boot 1.1.什么是Spring Boot Java是静态语言,先变异后运行都是静态语言,不编译直接运行是动态语言(js是动态语言不需要编译,因为浏览器可以直接解析).Java笨 ...
- EntityFramework 学习 一 Disconnected Entities
如何把断开的实体添加到新的context上下文中 1.首先,我们需要把实体附加到新的context上下文实例中. 2.其次,手动的给实体设置适当的实体状态,因为新的context上下文不知道断开的实体 ...
- 十二 Django框架,自定义分页
自定义分页模块 #!/usr/bin/env python #coding:utf-8 from django.utils.safestring import mark_safe #封装分页类模块 c ...
- Java_io_02_从一个目录拷贝文件到另一个目录下
java从一个目录拷贝文件到另一个目录下 http://www.cnblogs.com/langtianya/p/4857524.html ** * 复制单个文件 * @param oldPath ...
- Javascript-- jQuery动画篇(1)
jQuery中隐藏元素的hide方法 让页面上的元素不可见,一般可以通过设置css的display为none属性.但是通过css直接修改是静态的布局,如果在代码执行的时候,一般是通过js控制元素的st ...