springmvc的文件上传和json数据转化

springmvc的文件上传和json数据转化

springmvc的文件上传

struts的文件上传回顾
1,上传界面有所要求,需要多功能表单
   enctype="mutipart/form-data"    method="post"
2,需要一个处理文件上传的子控制器
	UpladfileAction
	属性:
	   File file
	  String fileFileName
	  String fileContentType
3,完成图片的虚拟映射
4,为了开发便捷,需要引入common-fileUpload  jar包
	FileUtil.copy(source,target)//source是来源,target是去处
可以参考我博文:https://blog.csdn.net/water_java/article/details/100074666

springmvc文件上传
1,上传界面有所要求,需要多功能表单
enctype=“mutipart/form-data” method=“post”

upload.jsp

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%--
  Created by IntelliJ IDEA.
  User: water
  Date: 2019/11/24
  Time: 15:33
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>文件上传界面</title>
</head>
<body>
<%--<from action="${pageContext.request.contextPath}/goods/upload" method="post" enctype="multipart/form-data">--%>
    <%--待上传文件:<input type="file" name="file">--%>
    <%--<<input type="submit">--%>
<%--</from>--%>
<
<form action="${pageContext.request.contextPath}/goods/upload" method="post" enctype="multipart/form-data">
    <input type="file" name="file">
    <input type="submit"value="上传">
</form>
</body>
</html>

在这里插入图片描述

2,需要一个处理文件上传的方法
利用注解:@requestMapping("/xxx")
File file
String fileFileName
String fileContentType
三合一使用 MutipartFile file

  @RequestMapping("/upload")
    public String upload(MultipartFile file){
        System.out.println("filename:"+file.getOriginalFilename());
        System.out.println("contentType:"+file.getContentType());
        try {
            FileUtils.copyInputStreamToFile(file.getInputStream(),new File("E:/img/"+file.getOriginalFilename()));
        } catch (IOException e) {
            e.printStackTrace();
        }
        return "redirect:/goods/list";
    }

3,完成图片的虚拟映射
我们可以在idea的tomcat 添加虚拟映射
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4,为了开发便捷,需要引入common-fileUpload jar包
FileUtil.copyinputStreamtoFile(inputstream,target)

 <!--文件上传-->
        <commons-fileupload.version>1.3.3</commons-fileupload.version>
 <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>${commons-fileupload.version}</version>
        </dependency>

springmvc-servlet.xml添加

<!--文件上传解析-->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!-- 必须和用户JSP 的pageEncoding属性一致,以便正确解析表单的内容 -->
        <property name="defaultEncoding" value="UTF-8"></property>
        <!-- 文件最大大小(字节) 1024*1024*50=50M-->
        <property name="maxUploadSize" value="52428800"></property>
        <!--resolveLazily属性启用是为了推迟文件解析,以便捕获文件大小异常-->
        <property name="resolveLazily" value="true"/>
    </bean>

结果
在这里插入图片描述

json数据的转换

@ResponseBody把结果进行json转换

三种格式
①Map
②List
③String


    //第一种
    @ResponseBody
    @RequestMapping("/json1")
    public Map json1(HttpServletRequest request) {

        Map map=new HashMap();
        PageBean pageBean=new PageBean();
        pageBean.setRequest(request);
        List<Map> list= goodsService.listPage(new Goods(),pageBean);
        map.put("total",pageBean.getTotal());
        map.put("data",list);
        return map;
    }

    //第二种
    @ResponseBody
    @RequestMapping("/json2")
    public List<Map> json2(HttpServletRequest request) {

        PageBean pageBean=new PageBean();
        pageBean.setRequest(request);
        List<Map> list= goodsService.listPage(new Goods(),pageBean);
        return list;
    }

    //第三种
    @ResponseBody
    @RequestMapping("/json3")
    public String json3(HttpServletRequest request) {
        PageBean pageBean=new PageBean();
        pageBean.setRequest(request);
        List<Map> list= goodsService.listPage(new Goods(),pageBean);
        return "list size:" +list.size();
    }

返回结果我就摆出来,仔细发现格式是一一对应的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值