这种方法就,仅支持post,但是必须要在消息转换器中配置JSON解析器
1
|
<bean
class
=
"org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"
></bean>
|
并注册到RequestMappingHandlerAdapter的messageConverters中。
Controller如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
/**
* 这里可以接受List,Array,Set等,写法是一样的,注意前端写法<br>
* 另外这个必须要使用MappingJacksonHttpMessageConverter这个消息转换器
* 请看我上面的配置
* @param user
* @return
*/
@ResponseBody
@RequestMapping
(
"user2"
)
public
String user2(
@RequestBody
List<User> user){
System.out.println(user.size());
return
""
;
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
var
userList=
new
Array();
userList.push({userName:
"xx"
,address:
"fff"
});
userList.push({userName:
"zzzz"
,address:
"ggggg"
});
$.ajax({
url:
"request/user2"
,
type:
"post"
,
data:JSON.stringify(userList),
dataType:
"json"
,
contentType:
"application/json"
,
success:
function
(data){
},error:
function
(data){
}
});
|
该方法仅支持POST的方式,会使用到json2.js这个类库,注意设置contentType:"application/json"这个属性,否则会报415未知的类型异常。
传递简单的字符串数组,仅支持POST方式
1
2
3
4
5
6
7
8
9
10
11
12
|
/**
* 传递简单的字符串数组
* 这个方法只支持POST
* @param s
* @return
*/
@ResponseBody
@RequestMapping
(
"array"
)
public
String array(
@RequestBody
String[] s){
System.out.println(s.length);
return
""
;
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
var
array=
new
Array();
array.push(1);
array.push(2);
array.push(3);
array.push(4);
array.push(5);
$.ajax({
url:
"request/array"
,
type:
"post"
,
dataType:
"json"
,
data:JSON.stringify(array),
dataType:
"json"
,
contentType:
"application/json"
,
success:
function
(data){
},error:
function
(data){
}
});
|
和上面的方法类似,注意contentType:"application/json",否则同样的415错误。
另一个例子:
第3种方法:将Json对象序列化成Json字符串提交,以List接收
HTML代码:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
Java代码: