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读取xml文件读取节点数据
Aug 12 Javascript
jquery实现无限分级横向导航菜单的方法
Mar 12 Javascript
js实现模拟计算器退格键删除文字效果的方法
May 07 Javascript
javascript中Date()函数在各浏览器中的显示效果
Jun 18 Javascript
javascript iframe跨域详解
Oct 26 Javascript
Bootstrap CSS布局之代码
Dec 17 Javascript
JavaScript 事件流、事件处理程序及事件对象总结
Apr 01 Javascript
全面介绍vue 全家桶和项目实例
Dec 27 Javascript
vue项目开发中setTimeout等定时器的管理问题
Sep 13 Javascript
详解如何制作并发布一个vue的组件的npm包
Nov 10 Javascript
服务端预渲染之Nuxt(使用篇)
Apr 08 Javascript
Vue提供的三种调试方式你知道吗
Jan 18 Vue.js
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
第九节 绑定 [9]
2006/10/09 PHP
php一些错误处理的方法与技巧总结
2013/08/10 PHP
ThinkPHP有变量的where条件分页实例
2014/11/03 PHP
PHP微信开发之微信消息自动回复下所遇到的坑
2016/05/09 PHP
PHP简单读取PDF页数的实现方法
2016/07/21 PHP
PHP简单实现解析xml为数组的方法
2018/05/02 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
2018/06/16 PHP
Nigma vs Alliance BO5 第四场2.14
2021/03/10 DOTA
javascript学习笔记(三) String 字符串类型介绍
2012/06/19 Javascript
js无刷新操作table的行和列
2014/03/27 Javascript
分享20款美化网站的 jQuery Lightbox 灯箱插件
2014/10/10 Javascript
使用jQuery仿苹果官网焦点图特效
2014/12/23 Javascript
分享两个手机访问pc网站自动跳转手机端网站代码
2020/12/24 Javascript
JavaScript中的setMilliseconds()方法使用详解
2015/06/11 Javascript
JS简单实现多级Select联动菜单效果代码
2015/09/06 Javascript
jQuery实现仿QQ头像闪烁效果的文字闪动提示代码
2015/11/03 Javascript
js实现的页面矩阵图形变换特效
2016/01/26 Javascript
Javascript的无new构建实例详解
2016/05/15 Javascript
js实现5秒倒计时重新发送短信功能
2017/02/05 Javascript
Bootstrap风格的zTree右键菜单
2017/02/17 Javascript
老生常谈js-react组件生命周期
2017/05/02 Javascript
vue子父组件通信的实现代码
2017/07/09 Javascript
vuejs使用$emit和$on进行组件之间的传值的示例
2017/10/04 Javascript
vue实现城市列表选择功能
2018/07/16 Javascript
JavaScript实时更新当前的时间的示例代码
2020/07/15 Javascript
[03:55]显微镜下的DOTA2特别篇——430灰烬之灵神级操作
2014/06/24 DOTA
Python Django 实现简单注册功能过程详解
2019/07/29 Python
详解python中的三种命令行模块(sys.argv,argparse,click)
2020/12/15 Python
利用HTML5 Canvas制作键盘及鼠标动画的实例分享
2016/03/15 HTML / CSS
乌克兰在线药房:Аптека24
2019/10/30 全球购物
Perfume’s Club澳大利亚官网:西班牙领先的在线美容店
2021/02/01 全球购物
大堂副理的岗位职责范文
2014/02/17 职场文书
十佳护士获奖感言
2014/02/18 职场文书
房务中心文员岗位职责
2014/04/16 职场文书
团代会闭幕词
2015/01/28 职场文书
2015军训通讯稿大全
2015/07/18 职场文书