欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SpringMVC框架Day07之ajax和文件上传

程序员文章站 2022-06-28 16:21:15
SpringMVC的AJAX服务端返回数据是json页面$.ajax()三步:1.导包jackson-databindjackson-corejackson-annotations2.写配置3.测试注解ajax与@ResponseBody()@ResponseBody在RequestMapping()之前加,将返回的数据放在响应体中;如果是对象,jackson包自动将对象转为json格式返回json格式的字符串给浏览器加@JsonIgnore 在bean中的私有变量 json中数...

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