设为首页 加入收藏

TOP

SpringMVC 返回json的两种方式
2018-01-01 06:06:51 】 浏览:138
Tags:SpringMVC 返回 json 方式

前后台数据交互使用json是一种很重要的方式。本文主要探讨SpringMVC框架使用json传输的技术。请注意。本文所提到的项目使用Spring 版本是4.1.7,其他版本在具体使用上可能有不一样的情况。


一、最常见——使用@RequestBody的注解返回一个实体对象;


使用方式如下:


1:引入jar包:


jackson-core、jackson-databind、jackson-annotion;


Spring4以上的版本这么配置,需要jackson的版本在2以上.


maven依赖 


2:Spring配置:


Spring4以上版本使用 <mvc:annotation-driven/>即包含了默认的配置,能够转化json,其他版本可能需要额外配置.


3:后台:


关键就是@ResponseBody注解,否则Spring会去映射与路径匹配的jsp文件


4:前台


这个路径是可以直接调用的,结果会直接输出到,但是一般来说,会使用jquery Ajax来获取数据:


结果


a:不添加@ResponseBody注解的情况,通过链接注解访问:



可以看到Spring MVC框架这个时候去找/json/entity.jsp这个文件的. 


b:添加@ResponseBody注解后:



 


json数据能正确返回了.


二、更加灵活的方式——将json数据放进Request中交互。


Spring MVC使用@ResponseBody的方式确实很简单,但是我们有时也会遇到这样的场景 ,就是访问一个新页面时,可能既要找到新的页面又要拿到新的数据去绘制页面。


这种时候如果使用@ResponseBody这种方式,那么就需要使用ajax技术,向后台请求两次,一次请求页面,一次请求数据。


如果希望通过一次请求就完成这个目标,那么就应该返回一个ModelAndView的对象,这样SpringMVC既可以跳转到一个页面,也能把数据传输到Request中。


使用方式:


1:相关jar包:


使用对象转化为Json的相关jar包,一般来说使用的时json-lib,实际上类似的框架和技术还有很多,比如上面的jackson就能做,不过笔者习惯于使用json-lib,使用起来会更方便和顺手一点。


maven:   


2:Spring 配置:无


3:后台:


关键是JSONObject.fromObject()方法。


4:前台:


注意这里的El表达式写法${entityJson},浏览器在进行渲染之前,tomcat已经将${entityJson}替换为json字符串。这个时候json直接就是一个可以使用的对象而不再需要进行转化


结果如下;



注意,这种方式只有在jsp页面中才有效果,如果不是jsp页面,只能乖乖使用第一种方式了。


三、总结


四、扩展


本文档使用的是SpringMVC框架,实际上第一种方式本质上是使用Response的writer对象来传递数据,而第二种方式使用request传递数据。所以如果使用原生servlet或者其他框架也是能够实现类似的功能的。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C++高性能转换大小写算法 下一篇TransmitFile函数的简单使用

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目