020 SpringMVC返回Json
一:处理Json
1.添加jar包
添加json需要的包
2.后端返回json对用的对象或者集合
使用ResponseBody标签
package com.spring.it.json; import java.util.Collection; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; import com.spring.it.dao.EmployeeDao;
import com.spring.it.enties.Employee; @Controller
public class ReturnJsonHander {
@Autowired
private EmployeeDao employeeDao; @ResponseBody
@RequestMapping(value="/testJson")
public Collection<Employee> testJson() {
return employeeDao.getAll();
}
}
3.前段
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<script type="text/javascript" src="scripts/jquery-1.9.1.min.js"></script>
<script type="text/javascript">
$(function(){
$("#testJson").click(function(){
var url=this.href;
var args={};
$.post(url,args,function(data){
for(var i=0;i<data.length;i++){
var id=data[i].id;
var lastName=data[i].lastName;
alert(id+":"+lastName);
}
});
return false;
});
})
</script>
<title>Insert title here</title>
</head>
<body>
<br>
<a href="emps">list emps</a>
<br><br>
<a href="testJson" id="testJson">Test Json</a>
</body>
</html>
4.返回json
[{
"id": 1001,
"lastName": "E-AA",
"email": "aa@163.com",
"gender": 1,
"department": {
"id": 101,
"departmentName": "D-AA"
},
"birth": null,
"salary": null
}, {
"id": 1002,
"lastName": "E-BB",
"email": "bb@163.com",
"gender": 1,
"department": {
"id": 102,
"departmentName": "D-BB"
},
"birth": null,
"salary": null
}, {
"id": 1003,
"lastName": "E-CC",
"email": "cc@163.com",
"gender": 0,
"department": {
"id": 103,
"departmentName": "D-CC"
},
"birth": null,
"salary": null
}, {
"id": 1004,
"lastName": "E-DD",
"email": "dd@163.com",
"gender": 0,
"department": {
"id": 104,
"departmentName": "D-DD"
},
"birth": null,
"salary": null
}, {
"id": 1005,
"lastName": "E-EE",
"email": "ee@163.com",
"gender": 1,
"department": {
"id": 105,
"departmentName": "D-EE"
},
"birth": null,
"salary": null
}]
5.请求

二:HttpMessageConverter
1.工作原理
使用HttpMessageConverter<T>将请求信息转化并绑定到处理方法的入参中,或将响应结果转化为对应类型的响应信息。
主要提供了两种途径:
@RequestBody与@ResponseBody对处理方法进行标注
HttpEntity与ResponseEntity作为处理方法的入参或返回值
三:案例--上传--注解
1.index
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<script type="text/javascript" src="scripts/jquery-1.9.1.min.js"></script>
<script type="text/javascript">
$(function(){
$("#testJson").click(function(){
var url=this.href;
var args={};
$.post(url,args,function(data){
for(var i=0;i<data.length;i++){
var id=data[i].id;
var lastName=data[i].lastName;
alert(id+":"+lastName);
}
});
return false;
});
})
</script>
<title>Insert title here</title>
</head>
<body>
<br>
<a href="emps">list emps</a>
<br><br>
<a href="testJson" id="testJson">Test Json</a>
<br><br>
<form action="testHttpMessageConverter" method="post" enctype="multipart/form-data">
File:<input type="file" name="file"/>
Desc:<input type="text" name="desc"/>
<input type="submit" value=Submit"">
</form> </body>
</html>
2.处理方法
package com.spring.it.json; import java.util.Collection;
import java.util.Date; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; import com.spring.it.dao.EmployeeDao;
import com.spring.it.enties.Employee; @Controller
public class ReturnJsonHander {
@Autowired
private EmployeeDao employeeDao; @ResponseBody
@RequestMapping(value="/testJson")
public Collection<Employee> testJson() {
return employeeDao.getAll();
} @ResponseBody
@RequestMapping(value="/testHttpMessageConverter")
public String testHttpMessage(@RequestBody String body) {
System.out.println("body:"+body);
return "helloWorld"+new Date();
}
}
3.效果


四:案例--下载--处理方法
1.请求
<a href="testResponseEntity">Test ResponseEntity</a>
2.处理方法
package com.spring.it.json; import java.io.IOException;
import java.io.InputStream;
import java.util.Collection;
import java.util.Date; import javax.servlet.ServletContext;
import javax.servlet.http.HttpSession; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; import com.spring.it.dao.EmployeeDao;
import com.spring.it.enties.Employee; @Controller
public class ReturnJsonHander {
@Autowired
private EmployeeDao employeeDao; @ResponseBody
@RequestMapping(value="/testJson")
public Collection<Employee> testJson() {
return employeeDao.getAll();
} @ResponseBody
@RequestMapping(value="/testHttpMessageConverter")
public String testHttpMessage(@RequestBody String body) {
System.out.println("body:"+body);
return "helloWorld"+new Date();
} @RequestMapping("/testResponseEntity")
public ResponseEntity<byte[]> testResponseEntity(HttpSession session) throws Exception{
byte[] body=null;
ServletContext context=session.getServletContext();
InputStream in=context.getResourceAsStream("/file/ADC.txt");
body=new byte[in.available()];
in.read(body);
HttpHeaders headers=new HttpHeaders();
headers.add("Content-Disposition", "attament;fileName=ADC.txt");
HttpStatus status=HttpStatus.OK;
ResponseEntity<byte[]> response=new ResponseEntity<>(body,headers,status);
return response;
} }
3.效果
浏览器上:

020 SpringMVC返回Json的更多相关文章
- 【Spring学习笔记-MVC-3.1】SpringMVC返回Json数据-方式1-扩展
<Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...
- 【Spring学习笔记-MVC-4】SpringMVC返回Json数据-方式2
<Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...
- 【Spring学习笔记-MVC-3】SpringMVC返回Json数据-方式1
<Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...
- SpringMVC返回Json,自定义Json中Date类型格式
http://www.cnblogs.com/jsczljh/p/3654636.html —————————————————————————————————————————————————————— ...
- 配置SpringMVC返回JSON遇到的坑
坑一:官方网站下载地址不明朗,最后找了几个下载地址:http://wiki.fasterxml.com/JacksonDownload Jackson2.5下载地址:jackson2.5.0.jar ...
- SpringMVC返回JSON数据时日期格式化问题
https://dannywei.iteye.com/blog/2022929 SpringMVC返回JSON数据时日期格式化问题 博客分类: Spring 在运用SpringMVC框架开发时,可 ...
- spring入门(七)【springMVC返回json串】
现在多数的应用为了提高交互性多使用异步刷新,即在不刷新整个页面的情况下,只刷新局部,局部刷新用得最多就是ajax,ajax和后台进行交互的数据格式使用的最多的是JSON,这里简单描述,在springm ...
- springmvc返回json字符串中文乱码问题
问题: 后台代码如下: @RequestMapping("menuTreeAjax") @ResponseBody /** * 根据parentMenuId获取菜单的树结构 * @ ...
- SpringMVC返回JSON方案
SpringMVC已经大行其道.一般的,都是返回JSP视图.如果需要返回JSON格式,我们大都掌握了一些方法. 在ContentNegotiatingViewResolver之前,一般使用XmlVie ...
随机推荐
- luogu 1026 统计单词个数
此题 字符串匹配+dp 确实我的kmp,哈希需要练一练了,忘干净可咋办 补救用下string,十分方便 e.g: 1.询问a[i]是否是x子串,可以截取并判断前缀 x为截取串 x.find(a[i]) ...
- linq to xml 简单的增、删、改、查、保存xml文件操作
using System; using System.Collections; using System.Configuration; using System.Data; using System. ...
- 2017CCPC秦皇岛 L题One-Dimensional Maze&&ZOJ3992【模拟】
链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3992 题意: 走迷宫,一个一维字符串迷宫,由'L'.'R'组成,分别 ...
- dbeaver can't connect HBase1.2 using phoenix driver #1863
1 第一个问题 Unexpected version format: 10.0.2 Unexpected version format: 10.0.2 Unexpected version forma ...
- PhoneUtil
package cn.fraudmetrix.octopus.horai.biz.utils; import org.springframework.util.StringUtils; import ...
- Django学习手册 - ORM choice字段 如何在页面上显示值
在module操作过程中使用choice字段: 核心: obj.get_字段名_display 定义module 数据结构: class msg(models.Model): choice = ( ( ...
- FPN-Feature Pyramid Networks for Object Detection
FPN-Feature Pyramid Networks for Object Detection 标签(空格分隔): 深度学习 目标检测 这次学习的论文是FPN,是关于解决多尺度问题的一篇论文.记录 ...
- block循环引用
block里边会有循环引用的风险,它可能对外部一个变量出现强引用,所以需要判断里边是否有循环引用,通过dealloc方法(销毁当前控制器.或销毁要测试的变量),判断是否循环引用.主要在block 里边 ...
- Window和document的区别
1.window 窗口对象.就是可视化区域的大小,不包含滚动条内东东. 2.document 对象,包含滚动条以外的区域
- 字符驱动之二操作方法(struct file_operations)【转】
转自:http://blog.chinaunix.net/uid-26837113-id-3157515.html 从上一篇我们看到了字符驱动的三个重要结构,那我现在跟大家详细的说说 struct f ...