wordpress直接上传视频网站吗,网站建设wangzhii,网页实训心得体会,佛山网站制作网站设计细节说明#xff1a;目标方法正常返回JSON需要的数据#xff0c;可以是一个对象#xff0c;也可以是一个集合#xff0c;这里我们返回的是一个Dog对象转成Json数据格式 示例案例#xff1a;
在springmve中#xff0c;如果我们返回一个集合List等#xff0c;或者返回…细节说明目标方法正常返回JSON需要的数据可以是一个对象也可以是一个集合这里我们返回的是一个Dog对象转成Json数据格式 示例案例
在springmve中如果我们返回一个集合List等或者返回一个对象那么springmve可以根据注解来重新进行编码处理使其成为一个json格式的数据并返回给浏览器.
0、添加依赖引入spring时自带
1、新建一个cat的javaBean
public class Cat {private String name;private String address;public Cat() {}
2、写handler 使用ReposeBody修饰目标方法
Controller
public class JsonHandler {RequestMapping(value /getJson)ResponseBodypublic Cat getJson() {Cat cat new Cat();cat.setName(宝宝);cat.setAddress(广西);return cat;}
}
3、
% page contentTypetext/html;charsetUTF-8 languagejava %
html
headtitleTitle/titlescript typetext/javascript srcscript/jquery-3.7.1.min.js/scriptscript typetext/javascript$(function(){$(#getJson).click(function () {//这是一个完整的请求var href this.href;alert(href);var args {time:new Date()};$.post(href,args,function(data){//data就是服务器返回的json数据alert(name data.nameaddress data.address);})//阻止超链接提交请求return false;})})/script/head
body
a hrefgetJson idgetJson点击获取Json数据/a
/body
/html
4、效果 原理说明 SpringMVC是依靠HttpMessageConverterT来进行转换的, 1.使用HttpMessageConverterT将请求信息转化并绑定到处理方法的入参中或将响应结果转为对应类型的响应信息Spring提供了两种途径使用RequestBody/ResponseBody 对目标方法进行标注使用HttpEntityT/ResponseEntityT作为目标方法的入参或返回值 (2.当控制器处理方法使用到RequestBody/ResponseBody或HttpEntityT/ResponseEntityT时,Spring 首先根据请求头或响应头的Accept属性选择匹配的HttpMessageConverter,进而根据参数类型或泛型类型的过滤得到匹配的HttpMessageConverter,若找不到可用的HttpMessageConverter将报错 (3.RequestBody和ResponseBody不需要成对出现
RequestBody注解
通过Reauestbodv注解可以将接收到的reauest请求数据【比如字段其至文件…】直接转成String,有时我们在开发中就有这样的需求
需求比如前端传了一个文件我们直接就是要他的String字符串即可以以字符串的形式接收文件
1、写一个目标方法使用RequestBody来修饰目标方法的参数这样接收过来时就会转换 RequestMapping(value /getJson01)public void getJson01(RequestBody String content) {System.out.println(文件的内容 content);}
h1提交一个文件/h1
form action/getJson01 methodpost enctypemultipart/form-data文件input typefile namefilebr提交input typesubmit value提交
/form
2、效果点击提交文件后获取到了test.txt的文件内容“hello world” 文件下载
基于HttpMessageConverterT的特性可以实现一个文件下载的功能。
在SpringMVC中通过返回ResponseEntityT的类型可以实现文件下载的功能。 Controller
public class DownloadHandler {RequestMapping(value /download)public ResponseEntitybyte[] download(HttpSession session) throws IOException {//先获取到你要下载的文件的字节输入流inputStreamInputStream is session.getServletContext().getResourceAsStream(/images/java.png);//开辟一个字节数组存放文件数据byte[] bytes new byte[is.available()];is.read(bytes);HttpStatus status HttpStatus.OK; //返回成功HttpHeaders headers new HttpHeaders();//这是告诉浏览器这是返回的一个文件需要弹出窗口headers.add(Content-Disposition, attachment;filenamejava.png);return new ResponseEntitybyte[](bytes, headers, status);}
}
h1测试文件下载/h1
a hrefdownload下载文件/a