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 相关文章推荐
[原创]保存的js无法执行的解决办法
Feb 25 Javascript
jCallout 轻松实现气泡提示功能
Sep 22 Javascript
jQuery中ajax和post处理json的不同示例对比
Nov 02 Javascript
JS实现兼容各浏览器解析XML文档数据的方法
Jun 01 Javascript
Node.js的MongoDB驱动Mongoose基本使用教程
Mar 01 Javascript
Javascript实现代码折叠功能
Aug 25 Javascript
JS验证图片格式和大小并预览的简单实例
Oct 11 Javascript
最常见的左侧分类菜单栏jQuery实现代码
Nov 28 Javascript
如何获取元素的最终background-color
Feb 06 Javascript
JS实现队列的先进先出功能示例
May 10 Javascript
ES6解构赋值实例详解
Oct 31 Javascript
js实现同一个页面,多个enter事件绑定的示例
Oct 10 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获取通过http协议post提交过来xml数据及解析xml
2012/12/16 PHP
PHP rawurlencode与urlencode函数的深入分析
2013/06/08 PHP
php对文件进行hash运算的方法
2015/04/03 PHP
php写一个函数,实现扫描并打印出自定目录下(含子目录)所有jpg文件名
2017/05/26 PHP
PHP利用curl发送HTTP请求的实例代码
2020/07/09 PHP
PHP实现腾讯短网址生成api接口实例
2020/12/08 PHP
Javascript计算时间差的函数分享
2011/07/04 Javascript
javascript ie6兼容position:fixed实现思路
2013/04/01 Javascript
JavaScript之IE的fireEvent方法详细解析
2013/11/20 Javascript
原生javascript获取元素样式
2014/12/31 Javascript
JavaScript自定义等待wait函数实例分析
2015/03/23 Javascript
多个上传文件用js验证文件的格式和大小的方法(推荐)
2017/03/09 Javascript
js的对象与函数详解
2019/01/21 Javascript
详解使用webpack+electron+reactJs开发windows桌面应用
2019/02/01 Javascript
深入了解js原型模式
2019/05/30 Javascript
[34:08]2018DOTA2亚洲邀请赛3月29日 小组赛B组 VP VS EG
2018/03/30 DOTA
使用相同的Apache实例来运行Django和Media文件
2015/07/22 Python
python开发之IDEL(Python GUI)的使用方法图文详解
2015/11/12 Python
django写用户登录判定并跳转制定页面的实例
2019/08/21 Python
pygame实现非图片按钮效果
2019/10/29 Python
Python 中如何实现参数化测试的方法示例
2019/12/10 Python
pycharm全局搜索的具体步骤
2020/07/28 Python
python 5个实用的技巧
2020/09/27 Python
逼真的HTML5树叶飘落动画
2016/03/01 HTML / CSS
水果花束:Fruit Bouquets
2017/12/20 全球购物
蔻驰西班牙官网:COACH西班牙
2019/01/16 全球购物
高分子材料与工程专业个人求职信
2013/12/15 职场文书
《风娃娃》教学反思
2014/04/19 职场文书
校园安全标语
2014/06/07 职场文书
科技节口号
2014/06/19 职场文书
大学生心理活动总结
2014/07/04 职场文书
销售人才自我评价范文
2014/09/27 职场文书
2014年高数考试作弊检讨书
2014/12/14 职场文书
党风廉政教育心得体会2016
2016/01/22 职场文书
Nginx优化服务之网页压缩的实现方法
2021/03/31 Servers
详解Go语言中配置文件使用与日志配置
2022/06/01 Golang