SpringMVC返回json数据的三种方式


Posted in Javascript onDecember 10, 2015

Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架,如Struts1,Struts2等。

1、第一种方式是spring2时代的产物,也就是每个json视图controller配置一个Jsoniew。

如:<bean id="defaultJsonView" class="org.springframework.web.servlet.view.json.MappingJacksonJsonView"/>

或者<bean id="defaultJsonView" class="org.springframework.web.servlet.view.json.MappingJackson2JsonView"/>

同样要用jackson的jar包。

2、第二种使用JSON工具将对象序列化成json,常用工具Jackson,fastjson,gson。

利用HttpServletResponse,然后获取response.getOutputStream()或response.getWriter()

直接输出。

示例:

public class JsonUtil 
{ 
  private static Gson gson=new Gson(); 
 
  /** 
   * @MethodName : toJson 
   * @Description : 将对象转为JSON串,此方法能够满足大部分需求 
   * @param src 
   *      :将要被转化的对象 
   * @return :转化后的JSON串 
   */ 
  public static String toJson(Object src) { 
    if (src == null) { 
      return gson.toJson(JsonNull.INSTANCE); 
    } 
    return gson.toJson(src); 
  } 
}

3、第三种利用spring mvc3的注解@ResponseBody

例如:

@ResponseBody 
 @RequestMapping("/list") 
 public List<String> list(ModelMap modelMap) { 
  String hql = "select c from Clothing c "; 
  Page<Clothing> page = new Page<Clothing>(); 
  page.setPageSize(6); 
  page = clothingServiceImpl.queryForPageByHql(page, hql); 
   
  return page.getResult(); 
 }

然后使用spring mvc的默认配置就可以返回json了,不过需要jackson的jar包哦。

注意:当springMVC-servlet.xml中使用<mvc:annotation-driven />时,如果是3.1之前已经默认注入AnnotationMethodHandlerAdapter,3.1之后默认注入RequestMappingHandlerAdapter只需加上上面提及的jar包即可!

如果是手动注入RequestMappingHandlerAdapter 可以这样设置

配置如下:

<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" 
    p:ignoreDefaultModelOnRedirect="true" > 
      <property name="messageConverters"> 
        <list> 
          <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"/> 
        </list> 
      </property> 
    </bean>

添加包

jackson-mapper-asl-*.jar
jackson-core-asl-*.jar

可以看出,使用方式越来越简单,程序员越来越傻,不知道是好事,还是坏事……

以上内容是小编给大家分享的SpringMVC返回json数据的三种方式,希望大家喜欢。

Javascript 相关文章推荐
document.write的几点使用心得
May 14 Javascript
Javascript 拖拽的一些简单的应用(逐行分析代码,让你轻松了拖拽的原理)
Jan 23 Javascript
jQuery添加options点击事件并传值实例代码
May 18 Javascript
php 修改密码实现代码
May 24 Javascript
javascript基础进阶_深入剖析执行环境及作用域链
Sep 05 Javascript
VUE2实现事件驱动弹窗示例
Oct 21 Javascript
js中的闭包学习心得
Feb 06 Javascript
详解用场景去理解函数柯里化(入门篇)
Apr 11 Javascript
微信小程序template模版的使用方法
Apr 13 Javascript
jQuery实现html可联动的百分比进度条
Mar 26 jQuery
vue实现用户长时间不操作自动退出登录功能的实现代码
Jul 23 Javascript
uniapp 微信小程序 自定义tabBar 导航
Apr 22 Javascript
js操作数组函数实例小结
Dec 10 #Javascript
SpringMVC框架下JQuery传递并解析Json格式的数据是如何实现的
Dec 10 #Javascript
jQuery自定义动画函数实例详解(附demo源码)
Dec 10 #Javascript
javascript图片预加载完整实例
Dec 10 #Javascript
JavaScript动态插入CSS的方法
Dec 10 #Javascript
jQuery实现监控页面所有ajax请求的方法
Dec 10 #Javascript
js表单提交和submit提交的区别实例分析
Dec 10 #Javascript
You might like
怎样在php中使用PDF文档功能
2006/10/09 PHP
Apache启动报错No space left on device: AH00023该怎么解决
2015/10/16 PHP
thinkPHP导出csv文件及用表格输出excel的方法
2015/12/30 PHP
php中array_column函数简单实现方法
2016/07/11 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
2018/06/13 PHP
DOM相关内容速查手册
2007/02/07 Javascript
JavaScript实用技巧(一)
2010/08/16 Javascript
EasyUI中的tree用法介绍
2011/11/01 Javascript
node.js Web应用框架Express入门指南
2014/05/28 Javascript
深入理解JavaScript系列(29):设计模式之装饰者模式详解
2015/03/03 Javascript
再次谈论Javascript中的this
2016/06/23 Javascript
js转换对象为xml
2017/02/17 Javascript
vue2.0 computed 计算list循环后累加值的实例
2018/03/07 Javascript
react 兄弟组件如何调用对方的方法示例
2018/10/23 Javascript
JavaScript封闭函数及常用内置对象示例
2019/05/13 Javascript
JavaScript面试中常考的字符串操作方法大全(包含ES6)
2020/05/10 Javascript
[01:08:00]Fnatic vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python 使用os.remove删除文件夹时报错的解决方法
2017/01/13 Python
python中使用iterrows()对dataframe进行遍历的实例
2018/06/09 Python
在notepad++中实现直接运行python代码
2019/12/18 Python
jupyter notebook 添加kernel permission denied的操作
2020/04/21 Python
Pycharm无法打开双击没反应的问题及解决方案
2020/08/17 Python
python中os.remove()用法及注意事项
2021/01/31 Python
北京RT科技有限公司.net工程师面试题
2013/02/15 面试题
Java的类与C++的类有什么不同
2014/01/18 面试题
留学自荐信的技巧
2013/10/17 职场文书
中国文明网签名寄语
2014/01/18 职场文书
宣传策划类求职信范文
2014/01/31 职场文书
晨会主持词
2014/03/17 职场文书
拾金不昧表扬信
2015/01/16 职场文书
三峡导游词
2015/01/31 职场文书
新闻简讯格式及范文
2015/07/22 职场文书
幼儿园安全管理制度
2015/08/05 职场文书
珍惜时间的诗歌赏析
2019/08/23 职场文书
CSS3通过var()和calc()函数实现动画特效
2021/03/30 HTML / CSS
python tkinter Entry控件的焦点移动操作
2021/05/22 Python