springmvc支持json和jsonp类型数据
2018-03-28 13:19
435 查看
在使用springmvc开发rest接口的时候很方便,可以直接使用@ResponseBody注解,直接加在springmvc的控制器类的方法上,springmvc会直接为我们将返回的对象序列化成为json类型的数据,但是有时候有的接口调用方需要我们直接返回jsonp类型的数据,这时候可能就会需要我们自己修改代码,比如获取请求参数callback属性,手动序列化返回的对象,然后用callback参数中的值和手动序列化之后的数据进行拼接,然后组装成jsonp类型的数据,但是有的接口调用方需要json类型的数据,还得需要我们手动进行判断该请求是否需要组装jsonp类型的数据进行返回,很不方便。但是从springmvc4.0版本开始,springmvc为我们提供了自适应的返回结果,自动的将上面需要我们手动实现的方法进行封装自动实现jsonp类型判断和数据组装,只需要我们继承springmvc提供的一个抽象类,然后传入需要进行jsonp类型请求的判断参数即可,代码如下:[java] view plain copy @ControllerAdvice
public class JsonpSupportAdvice extends AbstractJsonpResponseBodyAdvice {
public JsonpSupportAdvice() {
//参数包含callback的时候 使用jsonp的反馈形式
super("callback");
}
}
别忘记添加注解@ControllerAdvice,只需要上面几行代码,springmvc就会为我们所有的json类型的请求提供jsonp数据的支持,只需要在请求的时候携带callback参数,springmv就会返回jsonp类型数据,如果没有callback参数,springmv会返回正常的json数据。控制器的原有方法不做任何修改,也无需添加任何配置,轻松支持jsonp请求。
public class JsonpSupportAdvice extends AbstractJsonpResponseBodyAdvice {
public JsonpSupportAdvice() {
//参数包含callback的时候 使用jsonp的反馈形式
super("callback");
}
}
别忘记添加注解@ControllerAdvice,只需要上面几行代码,springmvc就会为我们所有的json类型的请求提供jsonp数据的支持,只需要在请求的时候携带callback参数,springmv就会返回jsonp类型数据,如果没有callback参数,springmv会返回正常的json数据。控制器的原有方法不做任何修改,也无需添加任何配置,轻松支持jsonp请求。
相关文章推荐
- springmvc支持json和jsonp类型数据
- springmvc支持json和jsonp类型数据
- springmvc 自定义view支持json和jsonp格式数据返回
- SpringMVC中fastjson支持jsonp的实现
- springmvc对json数据的支持、@responseBody @RequestBody的使用
- SpringMVC返回JSON数据中日期类型数据的格式化
- SpringMVC使用fastjson自定义Converter支持返回jsonp格式
- 通过Ajax进行POST提交JSON类型的数据到SpringMVC Controller的方法
- iOS Json和对象互转(反射支持对象嵌套的复杂对象类型,支持基本数据类型和NSDate属性转化)
- springmvc之json数据交互controller方法返回值为简单类型
- JSON传数据,JSONP跨域(外域JS调用本地回调函数):需外域服务端支持
- PostgreSQL json jsonb 支持的value数据类型,如何构造一个jsonb
- 扩展springMVC消息转换器来支持jsonp数据格式
- springMVC学习(11)-json数据交互和RESTful支持
- springmvc接收JSON类型的数据
- 通过Ajax进行POST提交JSON类型的数据到SpringMVC Controller的方法
- Mysql5.7支持Json数据类型
- springMVC中自定义json中数据类型
- springMVC参数绑定JSON类型的数据
- springmvc之json数据交互controller方法返回值为简单类型