SpringMVC框架Day07之ajax和文件上传
SpringMVC的AJAX
服务端返回数据是json
页面$.ajax()
三步:
1.导包
jackson-databind
jackson-core
jackson-annotations
2.写配置
3.测试
注解
ajax与@ResponseBody()
@ResponseBody在RequestMapping()之前加,将返回的数据放在响应体中;如果是对象,jackson包自动将对象转为json格式
返回json格式的字符串给浏览器
加@JsonIgnore 在bean中的私有变量 json中数据不显示该变量
preivate Date birth = new Date(); 之前加@JsonFormat(pattern=“yyyy-MM-dd”)指定向浏览器返回json的日期格式
@RepsonseBody()在@RequestMapping之上的作 用:
将返回的数据放在响应体中,不需要getWriter(),向浏览器写html数据,页面单纯返回return后的html脚本
json数据发送给服务器@RequestBody
@RequestBody服务器接受浏览器发送来的json数据和拿到请求体内容
@RequestMapping("/testRespBody")
public String testRespBody(@RequestBody String body){
System.out.println("post请求的请求体"+body);
return "success_crud";
}
<head>
<title>post请求表单</title>
</head>
<body>
<form action="/testRespBody" method="post">
username:<input type="text" value="shit"> <br>
password:<input type="password" value="123"> <br>
<input type="file" name="file">
<input type="submit">
</form>
@RequestHeader和HttpEntity·<·String>
@RequestHeader一个请求头信息
@HttpEntity获取全部请求头信息,参数携带响应体,响应头,响应状态码
@RequestMapping("/testResponseEntity")
public ResponseEntity<String> testResponseEntity(){
String body = "<h1>success</h1>";
HttpHeaders httpHeaders = new HttpHeaders();
return new ResponseEntity<String>(body,httpHeaders, HttpStatus.OK);
}
文件上传
在RequestMapping()中使用produces="text/html;charset=utf-8"解决响应乱码问题
1、表单 enctype=“multipart/form-data”
2、导包fileupload和io
3、在springmvc中配置文件上传解析器 CommonsMultpartResolver,id必须是multpartResolver
property名maxUploadSize,值value="#{1024102420}"
property配置字符编码defaultEncoding
4、文件上传请求处理 在Model model之前使用@RequestParam(“img”)MultipartFile file
通过file.transferTo(“D:\·\·”)
@ResponseBody
@RequestMapping(value = "/upload",produces = "text/html;charset=utf-8") //
public String upLoad(@RequestParam(value = "username",required = false) String username,
@RequestParam(value = "imgHeader") MultipartFile multipartFile,
Model model){
System.out.println("上传文件的信息");
System.out.println("文件名:"+multipartFile.getOriginalFilename());
System.out.println("表单中的name值:"+multipartFile.getName());
try {
multipartFile.transferTo(new File("F:\\"+multipartFile.getOriginalFilename()));
model.addAttribute("msg","文件上传到F盘成功");
} catch (IOException e) {
e.printStackTrace();
model.addAttribute("msg","upload failure");
}
return "<h1>文件上传成功</h1>";
}
<form action="http://localhost:8080/upload" method="post" enctype="multipart/form-data">
username:<input type="text" name="username" value="shit"> <br>
password:<input type="password" value="123"> <br>
用户头像<input type="file" name="imgHeader">
<input type="submit">
</form>
多文件上传 MultipartFile[]数组,增强for循环进行遍历。
本文地址:https://blog.csdn.net/m0_47119598/article/details/112010348