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的toLowerCase方法用法实例
Jan 27 Javascript
你不知道的高性能JAVASCRIPT
Jan 18 Javascript
JS实现鼠标滑过显示边框的菜单效果
Sep 21 Javascript
原生js实现旋转木马轮播图效果
Feb 27 Javascript
ES6中Proxy代理用法实例浅析
Apr 06 Javascript
JS计算距当前时间的时间差实例
Dec 29 Javascript
详解tween.js 中文使用指南
Jan 05 Javascript
Vue中使用clipboard实现复制功能
Sep 05 Javascript
webpack4简单入门实例
Sep 06 Javascript
js实现秒表计时器
Dec 16 Javascript
Node.js+Vue脚手架环境搭建的方法步骤
Mar 08 Javascript
js+for循环实现字符串自动转义的代码(把后面的字符替换前面的字符)
Dec 24 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
三国漫画《火凤燎原》宣布动画化PV放出 预计2020年播出
2020/03/08 国漫
PHP时间格式控制符对照表分享
2013/07/23 PHP
如何使用php等比例缩放图片
2016/10/12 PHP
动态调用css文件——jquery的应用
2007/02/20 Javascript
在一个js文件里远程调用jquery.js会在ie8下的一个奇怪问题
2010/11/28 Javascript
Array 重排序方法和操作方法的简单实例
2014/01/24 Javascript
javascript中的原型链深入理解
2014/02/24 Javascript
js钢琴按钮波浪式图片排列效果代码分享
2015/08/26 Javascript
JavaScript实现的SHA-1加密算法完整实例
2016/02/02 Javascript
浅谈使用splice函数对数组中的元素进行删除时的注意事项
2016/12/04 Javascript
使用JavaScript实现alert的实例代码
2017/07/06 Javascript
JavaScript模拟文件拖选框样式v1.0的实例
2017/08/04 Javascript
Vuex 进阶之模块化组织详解
2018/01/12 Javascript
基于vue-element组件实现音乐播放器功能
2018/05/06 Javascript
js中split()方法得到的数组长度问题
2018/07/19 Javascript
基于element-ui的rules中正则表达式
2018/09/04 Javascript
node Buffer缓存区常见操作示例
2019/05/04 Javascript
jQuery实现动态生成年月日级联下拉列表示例
2019/05/11 jQuery
通过滑动翻页效果实现和移动端click事件问题
2021/01/26 Javascript
[55:54]FNATIC vs EG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python中的rjust()方法使用详解
2015/05/19 Python
浅析Python中的for 循环
2016/06/09 Python
python opencv实现信用卡的数字识别
2020/01/12 Python
Python实现爬取并分析电商评论
2020/06/19 Python
如何通过python实现IOU计算代码实例
2020/11/02 Python
使用CSS媒体查询(Media Queries)和JavaScript判断浏览器设备类型的方法
2014/04/03 HTML / CSS
Lowe’s加拿大:家居装修、翻新和五金店
2019/12/06 全球购物
全球才华横溢工匠的家居装饰、珠宝和礼物:NOVICA
2021/01/22 全球购物
求职信格式范本
2013/11/15 职场文书
污水厂厂长岗位职责
2014/01/04 职场文书
会计专业大学生职业生涯规划范文
2014/01/11 职场文书
个人综合鉴定材料
2014/05/23 职场文书
2016春季运动会开幕词
2016/03/04 职场文书
pycharm代码删除恢复的方法
2021/06/26 Python
《原神》新角色演示“神里绫人:林隐泓洄” 宠妹狂魔
2022/04/03 其他游戏
SQL中去除重复数据的几种方法汇总(窗口函数对数据去重)
2023/05/08 MySQL