首页 > 代码库 > SpringMVC处理Json-使用 HttpMessageConverter
SpringMVC处理Json-使用 HttpMessageConverter
一、示例—文件下载:
@RequestMapping("/testHttpMessageConverter" )
public ResponseEntity< byte[]> testHttpMessageConverter(@RequestBody String requestBody,
HttpSession session) throws IOException{
System. out.println(requestBody);
InputStream in = session.getServletContext().getResourceAsStream("/WEB-INF/files/abc.pdf" );
byte [] bytes = new byte[in.available()];
in.read(bytes);
HttpHeaders headers = new HttpHeaders();
headers.add( "Content-Disposition", "attachment;filename=a.pdf" );
HttpStatus statusCode = HttpStatus. OK;
ResponseEntity< byte[]> re = new ResponseEntity<byte []>(bytes, headers, statusCode);
return re;
}
◇当控制器处理方法使用到 @RequestBody/@ResponseBody 或HttpEntity<T>/ResponseEntity<T> 时,
Spring 首先根据请求头或响应头的 Accept 属性选择匹配的 HttpMessageConverter,
进而根据参数类型或泛型类型的过滤得到匹配的 HttpMessageConverter, 若找不到可用的 HttpMessageConverter 将报错
◇@RequestBody 和 @ResponseBody 不需要成对出现
Spring 首先根据请求头或响应头的 Accept 属性选择匹配的 HttpMessageConverter,
进而根据参数类型或泛型类型的过滤得到匹配的 HttpMessageConverter, 若找不到可用的 HttpMessageConverter 将报错
◇@RequestBody 和 @ResponseBody 不需要成对出现
二、获取json数据示例:
1.页面请求:< a href ="getEmployeesForJson" id ="json">testForJson </a>
2.发post请求:
<script type= "text/javascript" src="scripts/jquery-1.9.1.min.js" ></script>
<script type= "text/javascript">
$(function(){
$( "#json").click(function (){
var url=this .href;
var args={};
$.post(url,args, function(data){
for(var i=0;i<data.length;i++){
alert( "lastName:"+data[i].lastName+",department:" +data[i].department.departmentName);
}
});
return false ;
});
});
</script>
三、处理请求
@ResponseBody
@RequestMapping( "/getEmployeesForJson")
public Collection<Employee> getEmployees() {
return employeeDao .getAll();
}
注意:要在JRE环境中添加 jackson-all-1.9.11.jar
O(∩_∩)O~处理json数据就是这么方便,只需要在对应的处理方法上加一个注解@ResponseBody就可以了。
SpringMVC处理Json-使用 HttpMessageConverter
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。