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技巧之不要用for in语句对数组进行遍历
Oct 20 Javascript
js中的屏蔽的使用示例
Jul 30 Javascript
javascript的parseFloat()方法精度问题探讨
Nov 26 Javascript
$.each与$().each的区别示例介绍
Mar 20 Javascript
js实现iGoogleDivDrag模块拖动层拖动特效的方法
Mar 04 Javascript
vue.js 表格分页ajax 异步加载数据
Oct 18 Javascript
JS/jQuery判断DOM节点是否存在的简单方法
Nov 24 Javascript
基于element-ui组件手动实现单选和上传功能
Dec 06 Javascript
js屏蔽退格键(backspace或者叫后退键与F5)
Feb 10 Javascript
React 使用Hooks简化受控组件的状态绑定
Mar 18 Javascript
vue实现给div绑定keyup的enter事件
Jul 31 Javascript
三种方式清除vue路由跳转router-link的历史记录
Apr 10 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
Yii框架获取当前controlle和action对应id的方法
2014/12/03 PHP
php封装好的人民币数值转中文大写类
2015/12/20 PHP
yii2使用ajax返回json的实现方法
2016/05/14 PHP
php成功操作redis cluster集群的实例教程
2019/01/13 PHP
另类调用flash无须激活的方法
2006/12/27 Javascript
jQuery在html有效在jsp无效的原因及解决方法
2013/08/02 Javascript
JS判断表单输入是否为空(示例代码)
2013/12/23 Javascript
用javascript替换URL中的参数值示例代码
2014/01/27 Javascript
轻松创建nodejs服务器(8):非阻塞是如何实现的
2014/12/18 NodeJs
javascript求日期差的方法
2016/03/02 Javascript
JavaScript编码风格指南(中文版)
2016/08/26 Javascript
JS实现表单多文件上传样式美化支持选中文件后删除相关项
2016/09/30 Javascript
使用live-server快速搭建本地服务器+自动刷新的方法
2018/03/09 Javascript
AngularJS 前台分页实现的示例代码
2018/06/07 Javascript
微信小程序遍历Echarts图表实现多个饼图
2019/04/25 Javascript
JS使用setInterval计时器实现挑战10秒
2020/11/08 Javascript
原生js 实现表单验证功能
2021/02/08 Javascript
[03:24]CDEC.Y赛前采访 努力备战2016国际邀请赛中国区预选赛
2016/06/25 DOTA
Python中用Decorator来简化元编程的教程
2015/04/13 Python
基于python中pygame模块的Linux下安装过程(详解)
2017/11/09 Python
Python3 replace()函数使用方法
2018/03/19 Python
对numpy中的transpose和swapaxes函数详解
2018/08/02 Python
Python向excel中写入数据的方法
2019/05/05 Python
python2爬取百度贴吧指定关键字和图片代码实例
2019/08/14 Python
Django中使用haystack+whoosh实现搜索功能
2019/10/08 Python
pycharm 使用anaconda为默认环境的操作
2021/02/05 Python
CSS3 @keyframes简单动画实现
2018/02/24 HTML / CSS
HTML5网页录音和上传到服务器支持PC、Android,支持IOS微信功能
2019/04/26 HTML / CSS
幼儿园实习自我鉴定
2013/12/15 职场文书
护理专业毕业生自荐信范文
2014/01/05 职场文书
五心教育心得体会
2014/09/04 职场文书
小人国观后感
2015/06/11 职场文书
观后感格式
2015/06/19 职场文书
2016入党积极分子心得体会
2016/01/06 职场文书
2016年公共机构节能宣传周活动总结
2016/04/05 职场文书
管理者日常工作必备:22条企业管理流程模板!
2019/07/12 职场文书