SpringMVC3.1 + JQuery + JSON

[url]http://gaoqifang.blog.51cto.com/2270113/757978[/url]
出现问题:[url]http://blog.csdn.net/wangxiaotaolhc/article/details/6701720[/url]

说明:spring mvc对json数据的处理,分为请求中json数据的处理和返回json数据的处理。
如何实现:
1、需要额外的jar包支持,我在网上找到一个总的jar包:jackson-all-1.9.2.jar;
2、spring 配置文件添加视图处理配置:
<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver"> 
<property name="order" value="1" />
<property name="mediaTypes">
<map>
<entry key="html" value="text/html" />
<entry key="json" value="application/json" />
</map>
</property>
<property name="defaultViews">
<!-- 输出为JSON数据-->
<!--此处com.company.json.MappingJacksonJsonView覆写了org.springframework.web.servlet.view.json.MappingJacksonJsonView类,也可不必覆写直接使用此类-->
<list>
<bean class="com.company.json.MappingJacksonJsonView" />
</list>
</property>
<property name="ignoreAcceptHeader" value="true" />
</bean>

3.接收请求中的json数据:
1)使用ajax方式发送带有json数据的请求代码:
$.ajax(type: 'POST', 
url:"xxxxx" ,
data: JSON.stringify({userName:'winzip',password:'password',mobileNO:'13818881888'}),
dataType: 'json',
contentType:'application/json;charset=UTF-8',
success: function(result) {
alert(result.success);

} );
其中data中传递的便是一个User(User类需要自己创建)对象的json形式;

2)后台控制器中处理json数据的实现方法:
/**     
* 输入为JSON格式的数据的方式
* 1、@RequestBody 将httpRequest的body绑定到方法参数上
* @param param
* @return
*/
@RequestMapping(value = "xxxxx")
public ModelAndView someMethod(@RequestBody User user){
do something………;
return some;
}

代码解释:当一个json请求传过来一个json数据形式的User对象时,会自动将json数据转换成User对象。

3.接收请求中的json数据:
1)请求:同样使用ajax方式发送json请求
$.ajax({ 
"url" : "xxxxxxx",
"type" : "GET",
"dateType" : "json",
"success" : function(data) {
此处便可对返回的json按照自己需要进行处理了
如果返回的是一个单独对象,可直接使用data.对象属性,来获得该对象的相应属性值,如果返回的是一个集合对象,可使用for循环data[i].对象属性,来获得对象相应的属性值。

}
});

2)后台控制器中处理代码的实现方法:
/**     
* 输出为JSON格式的数据的方式
* @ResponseBody的作用是把返回值直接写到HTTP response body里
*/
@RequestMapping("xxxxxxx")
@ResponseBody
public Object someMethod() {
…………………………..
return someObject;
}

代码解释:当一个type为json请求调用此方法,那么,他自动将返回的对象转换成json数据返回。


附件是所需要的jar
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值