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 相关文章推荐
JavaScript 精粹读书笔记(1,2)
Feb 07 Javascript
基于Jquery制作的幻灯片图集效果打包下载
Feb 12 Javascript
jQuery登陆判断简单实现代码
Apr 21 Javascript
纯js代码实现简单计算器
Dec 02 Javascript
javascript类型系统——日期Date对象全面了解
Jul 13 Javascript
再谈javascript注入 黑客必备!
Sep 14 Javascript
jquery鼠标悬停导航下划线滑出效果
Sep 29 jQuery
js实现通过开始结束控制的计时器
Feb 25 Javascript
Echarts动态加载多条折线图的实现代码
May 24 Javascript
详解将微信小程序接口Promise化并使用async函数
Aug 05 Javascript
vue中watch和computed为什么能监听到数据的改变以及不同之处
Dec 27 Javascript
Laravel 如何在blade文件中使用Vue组件的示例代码
Jun 28 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 上传功能实例代码
2010/04/13 PHP
九个你必须知道而且又很好用的php函数和特点
2013/08/08 PHP
php图片缩放实现方法
2014/02/20 PHP
PHP中的traits简单使用实例
2015/05/13 PHP
详解Yii2 rules 的验证规则
2016/12/02 PHP
tp5递归 无限级分类详解
2019/10/18 PHP
js输出列表实现代码
2010/09/12 Javascript
情人节专属 纯js脚本1k大小的3D玫瑰效果
2012/02/11 Javascript
jQuery 瀑布流 绝对定位布局(二)(延迟AJAX加载图片)
2012/05/23 Javascript
jQuery中delegate和on的用法与区别详细解析
2014/01/26 Javascript
浅谈jQuery中对象遍历.eq().first().last().slice()方法
2014/11/26 Javascript
node.js中的fs.truncateSync方法使用说明
2014/12/15 Javascript
js识别uc浏览器的代码
2015/11/06 Javascript
浅谈bootstrap使用中的一些问题以及解决过程
2016/10/18 Javascript
原生js实现回复评论功能
2017/01/18 Javascript
JS中使用 after 伪类清除浮动实例
2017/03/01 Javascript
浅析JavaScript中的平稳退化(graceful degradation)
2017/07/24 Javascript
jQuery实现base64前台加密解密功能详解
2017/08/29 jQuery
Electron 调用命令行(cmd)
2019/09/23 Javascript
JavaScript冒泡算法原理与实现方法深入理解
2020/06/04 Javascript
JS实现数据动态渲染的竖向步骤条
2020/06/24 Javascript
vue实现按钮切换图片
2021/01/20 Vue.js
Python random模块常用方法
2014/11/03 Python
Python列表计数及插入实例
2014/12/17 Python
在Django的session中使用User对象的方法
2015/07/23 Python
Python3中使用PyMongo的方法详解
2017/07/28 Python
Python使用wget实现下载网络文件功能示例
2018/05/31 Python
OpenCV图像颜色反转算法详解
2019/05/13 Python
python logging添加filter教程
2019/12/24 Python
HTML5实现应用程序缓存(Application Cache)
2020/06/16 HTML / CSS
美国设计师精美珠宝购物网:Netaya
2016/08/28 全球购物
好人好事事迹材料
2014/02/12 职场文书
全运会口号
2014/06/20 职场文书
学习考察心得体会
2014/09/04 职场文书
欢迎家长标语
2014/10/08 职场文书
python实现简单的井字棋
2021/05/26 Python