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对象创建及继承原理实例解剖
Feb 28 Javascript
基于javascipt-dom编程 table对象的使用
Apr 22 Javascript
基于jQuery+PHP+Mysql实现在线拍照和在线浏览照片
Sep 06 Javascript
AngularJS过滤器详解及示例代码
Aug 16 Javascript
开源免费天气预报接口API及全国所有地区代码(国家气象局提供)
Dec 26 Javascript
JS组件系列之MVVM组件 vue 30分钟搞定前端增删改查
Apr 28 Javascript
jQuery实现html table行Tr的复制、删除、计算功能
Jul 10 jQuery
简单的网页广告特效实例
Aug 19 Javascript
微信小程序表单验证form提交错误提示效果
Jun 19 Javascript
vue.js template模板的使用(仿饿了么布局)
Aug 13 Javascript
bootstrap-table+treegrid实现树形表格
Jul 26 Javascript
快速对接payjq的个人微信支付接口过程解析
Aug 15 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 session 会话处理函数
2016/06/06 PHP
PHP架构及原理知识点详解
2019/12/22 PHP
XAMPP升级PHP版本实现步骤解析
2020/09/04 PHP
jQuery学习之prop和attr的区别示例介绍
2013/11/15 Javascript
使用Node.js实现一个简单的FastCGI服务器实例
2014/06/09 Javascript
自己动手手写jQuery插件总结
2015/01/20 Javascript
jquery实现的Banner广告收缩效果代码
2015/09/02 Javascript
jQuery toggle 代替方法
2016/03/22 Javascript
Highcharts学习之坐标轴
2016/08/02 Javascript
js前端实现多图图片上传预览的两个方法(推荐)
2016/11/18 Javascript
webpack入门必知必会
2017/01/16 Javascript
JavaScript实现的XML与JSON互转功能详解
2017/02/16 Javascript
js实现PC端根据IP定位当前城市地理位置
2017/02/22 Javascript
详解如何在Angular中快速定位DOM元素
2017/05/17 Javascript
JS库中的Particles.js在vue上的运用案例分析
2017/09/13 Javascript
关于jQuery里prev()的简单操作代码
2017/10/27 jQuery
vue 路由页面之间实现用手指进行滑动的方法
2018/02/23 Javascript
JS实现Cookie读、写、删除操作工具类示例
2018/08/28 Javascript
如何在Node和浏览器控制台中打印彩色文字
2020/01/09 Javascript
vue中element 的upload组件发送请求给后端操作
2020/09/07 Javascript
简单介绍Python中的几种数据类型
2016/01/02 Python
举例讲解Python面向对象编程中类的继承
2016/06/17 Python
python3+PyQt5图形项的自定义和交互 python3实现page Designer应用程序
2020/07/20 Python
python sys.argv[]用法实例详解
2018/05/25 Python
TensorFlow Session会话控制&amp;Variable变量详解
2018/07/30 Python
小白入门篇使用Python搭建点击率预估模型
2018/10/12 Python
Python3简单实现串口通信的方法
2019/06/12 Python
Django文件存储 默认存储系统解析
2019/08/02 Python
numpy 返回函数的上三角矩阵实例
2019/11/25 Python
python实现测试工具(一)——命令行发送get请求
2020/10/19 Python
Russell Stover巧克力官方网站:美国领先的精美巧克力制造商
2016/11/27 全球购物
加拿大当代时尚服饰、配饰和鞋类专业零售商和制造商:LE CHÂTEAU
2017/10/06 全球购物
理工大学毕业生自荐信
2013/11/01 职场文书
毕业感言怎么写
2015/07/31 职场文书
动态规划之使用备忘录来改进Javascript函数
2022/04/07 Javascript
GoFrame框架数据校验之校验结果Error接口对象
2022/06/21 Golang