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对象之内置对象Math使用方法
Apr 16 Javascript
jQuery Clone Bug解决代码
Dec 22 Javascript
映彩衣的js随笔(js图片切换效果)
Jul 31 Javascript
Jquery promise实现一张一张加载图片
Nov 13 Javascript
辨析JavaScript中的Undefined类型与null类型
May 26 Javascript
js 单引号替换成双引号,双引号替换成单引号的实现方法
Feb 16 Javascript
解决mpvue + vuex 开发微信小程序vuex辅助函数mapState、mapGetters不可用问题
Aug 03 Javascript
js回文数的4种判断方法示例
Jun 04 Javascript
layUI实现列表查询功能
Jul 27 Javascript
Vue.js 无限滚动列表性能优化方案
Dec 02 Javascript
vue实现倒计时功能
Mar 24 Vue.js
从原生JavaScript到React深入理解
Jul 23 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中在数据库中保存Checkbox数据(1)
2006/10/09 PHP
使用sockets:从新闻组中获取文章(三)
2006/10/09 PHP
PHPCMS忘记后台密码的解决办法
2016/10/30 PHP
php、mysql查询当天,查询本周,查询本月的数据实例(字段是时间戳)
2017/02/04 PHP
Javascript-Mozilla和IE中的一个函数直接量的问题
2007/01/09 Javascript
document.getElementById为空或不是对象的解决方法
2010/01/24 Javascript
JavaScript遍历table表格中的某行某列并打印其值
2014/07/08 Javascript
java、javascript实现附件下载示例
2014/08/14 Javascript
asp知识整理笔记3(问答模式)
2015/09/27 Javascript
jQuery+canvas实现的球体平抛及颜色动态变换效果
2016/01/28 Javascript
javascript实现文字无缝滚动
2016/12/27 Javascript
jQuery Plupload上传插件的使用
2017/04/19 jQuery
JS库之Particles.js中文开发手册及参数详解
2017/09/13 Javascript
JS排序算法之希尔排序与快速排序实现方法
2017/12/12 Javascript
Vue页面渲染中key的应用实例教程
2021/01/12 Vue.js
python3.3使用tkinter开发猜数字游戏示例
2014/03/14 Python
跟老齐学Python之用while来循环
2014/10/02 Python
python保存字符串到文件的方法
2015/07/01 Python
Python实现读取及写入csv文件的方法示例
2018/01/12 Python
用python标准库difflib比较两份文件的异同详解
2018/11/16 Python
Python给定一个句子倒序输出单词以及字母的方法
2018/12/20 Python
详解Python给照片换底色(蓝底换红底)
2019/03/22 Python
Django中在xadmin中集成DjangoUeditor过程详解
2019/07/24 Python
python生成器用法实例详解
2019/11/22 Python
Python模块future用法原理详解
2020/01/20 Python
Python定时从Mysql提取数据存入Redis的实现
2020/05/03 Python
捷克体育用品购物网站:D-sport
2017/12/28 全球购物
伯利陶器:Burleigh Pottery
2018/01/03 全球购物
美国手工艺品市场的领导者:Annie’s
2019/04/04 全球购物
学校后勤人员职责
2013/12/27 职场文书
开业庆典致辞
2015/08/01 职场文书
解决Pytorch dataloader时报错每个tensor维度不一样的问题
2021/05/28 Python
Python中requests做接口测试的方法
2021/05/30 Python
Pytest中skip skipif跳过用例详解
2021/06/30 Python
浅谈TypeScript 索引签名的理解
2021/10/16 Javascript
RestTemplate如何通过HTTP Basic Auth认证示例说明
2022/03/17 Java/Android