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 原型链学习总结
Oct 29 Javascript
使用jQuery实现dropdownlist的联动效果(sharepoint 2007)
Mar 30 Javascript
利用js实现在浏览器状态栏显示访问者在本页停留的时间
Dec 29 Javascript
node.js中的fs.createReadStream方法使用说明
Dec 17 Javascript
javascript伸缩菜单栏实现代码分享
Nov 12 Javascript
Javascript点击其他任意地方隐藏关闭DIV实例
Jun 21 Javascript
JavaScript蒙板(model)功能的简单实现代码
Aug 04 Javascript
深入浅析JS是按值传递还是按引用传递(推荐)
Sep 18 Javascript
Vue引用Swiper4插件无法重写分页器样式的解决方法
Sep 27 Javascript
微信小程序实现录音时的麦克风动画效果实例
May 18 Javascript
node.JS的crypto加密模块使用方法详解(MD5,AES,Hmac,Diffie-Hellman加密)
Feb 06 Javascript
解决element-ui的下拉框有值却无法选中的情况
Nov 07 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来处理多个提交任务
2008/05/08 PHP
PHP中用正则表达式清除字符串的空白
2011/01/17 PHP
php获取四位字母和数字的随机数的实现方法
2015/01/09 PHP
php getcwd与dirname(__FILE__)区别详解
2016/09/24 PHP
javascript中的数字与字符串相加实例分析
2011/08/14 Javascript
原生js实现淘宝首页点击按钮缓慢回到顶部效果
2014/04/06 Javascript
jQuery操作表格(table)的常用方法、技巧汇总
2014/04/12 Javascript
检测一个函数是否是JavaScript原生函数的小技巧
2015/03/13 Javascript
node.js调用C++开发的模块实例
2015/07/03 Javascript
微信公众号 客服接口的开发实例详解
2016/09/28 Javascript
详解前端自动化工具gulp自动添加版本号
2016/12/20 Javascript
JavaScript实现简单的树形菜单效果
2017/06/23 Javascript
微信小程序商品详情页规格属性选择示例代码
2017/10/30 Javascript
Angular实现双向折叠列表组件的示例代码
2017/11/21 Javascript
微信小程序 点击切换样式scroll-view实现代码实例
2019/10/11 Javascript
Vue列表如何实现滚动到指定位置样式改变效果
2020/05/09 Javascript
Element MessageBox弹框的具体使用
2020/07/27 Javascript
python重试装饰器示例
2014/02/11 Python
简化Python的Django框架代码的一些示例
2015/04/20 Python
Python中支持向量机SVM的使用方法详解
2017/12/26 Python
Python并发编程协程(Coroutine)之Gevent详解
2017/12/27 Python
Python基于socket模块实现UDP通信功能示例
2018/04/10 Python
Python使用Dijkstra算法实现求解图中最短路径距离问题详解
2018/05/16 Python
python 回溯法模板详解
2020/02/26 Python
Python 找出英文单词列表(list)中最长单词链
2020/12/14 Python
python 指定源路径来解决import问题的操作
2021/03/04 Python
为您的家、后院、车库等在线购物:Spreetail
2019/06/17 全球购物
一些高难度的SQL面试题
2016/11/29 面试题
技术人员面试提纲
2013/11/28 职场文书
双十佳事迹材料
2014/01/29 职场文书
葬礼司仪主持词
2014/03/31 职场文书
测绘工程专业求职信
2014/07/15 职场文书
民主生活会对照检查材料范文
2014/10/01 职场文书
三八红旗手先进事迹材料(2016推荐版)
2016/02/25 职场文书
Golang获取List列表元素的四种方式
2022/04/20 Golang
使用 MybatisPlus 连接 SqlServer 数据库解决 OFFSET 分页问题
2022/04/22 SQL Server