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通过class来获取元素实现代码
Feb 20 Javascript
jquery插件开发注意事项小结
Jun 04 Javascript
JavaScript检测浏览器cookie是否已经启动的方法
Feb 27 Javascript
Bootstrap每天必学之栅格系统(布局)
Nov 25 Javascript
总结JavaScript设计模式编程中的享元模式使用
May 21 Javascript
AngularJS使用ng-options指令实现下拉框
Aug 23 Javascript
模板视图和AngularJS之间冲突的解决方法
Nov 22 Javascript
Javascript 实现全屏滚动实例代码
Dec 31 Javascript
用Vue-cli搭建的项目中引入css报错的原因分析
Jul 20 Javascript
Node.js实现注册邮箱激活功能的方法示例
Mar 23 Javascript
JavaScript中工厂函数与构造函数示例详解
May 06 Javascript
原生JavaScript创建不可变对象的方法简单示例
May 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
探讨:如何使用PhpDocumentor生成文档
2013/06/25 PHP
PHP+Ajax检测用户名或邮件注册时是否已经存在实例教程
2014/08/23 PHP
php中get_meta_tags()、CURL与user-agent用法分析
2014/12/16 PHP
php实现判断访问来路是否为搜索引擎机器人的方法
2015/04/15 PHP
简单的自定义php模板引擎
2016/08/26 PHP
php命令行写shell实例详解
2018/07/19 PHP
PHP PDOStatement::fetchColumn讲解
2019/01/31 PHP
6个DIV 135或246间隔一秒轮番显示效果
2010/07/24 Javascript
javascript模拟php函数in_array
2015/04/27 Javascript
VueJs单页应用实现微信网页授权及微信分享功能示例
2017/07/26 Javascript
Vue中建立全局引用或者全局命令的方法
2017/08/21 Javascript
js实现动态添加上传文件页面
2018/10/22 Javascript
JavaScript函数IIFE使用详解
2019/10/21 Javascript
微信小程序实现音乐播放器
2019/11/20 Javascript
[01:18:36]LGD vs VP Supermajor 败者组决赛 BO3 第一场 6.10
2018/07/04 DOTA
windows10系统中安装python3.x+scrapy教程
2016/11/08 Python
解决新django中的path不能使用正则表达式的问题
2018/12/18 Python
详解PyCharm安装MicroPython插件的教程
2019/06/24 Python
python中dict使用方法详解
2019/07/17 Python
python中时间转换datetime和pd.to_datetime详析
2019/08/11 Python
python中return的返回和执行实例
2019/12/24 Python
wxPython修改文本框颜色过程解析
2020/02/14 Python
python变量的作用域是什么
2020/05/26 Python
python中pdb模块实例用法
2021/01/15 Python
python基于pexpect库自动获取日志信息
2021/02/01 Python
HTML5 Canvas的事件处理介绍
2015/04/24 HTML / CSS
自考毕业生自我鉴定
2013/11/04 职场文书
运动会致辞稿50字
2014/02/04 职场文书
2014法院四风问题对照检查材料思想汇报
2014/10/04 职场文书
飞屋环游记观后感
2015/06/08 职场文书
2015大学生暑期实习报告
2015/07/13 职场文书
军训后的感想
2015/08/07 职场文书
Mysql中存储引擎的区别及比较
2021/06/04 MySQL
交互式可视化js库gojs使用介绍及技巧
2022/02/18 Javascript
使用Java去实现超市会员管理系统
2022/03/18 Java/Android
Python TypeError: ‘float‘ object is not subscriptable错误解决
2022/12/24 Python