springMVC入门-09

  这一节介绍SpringMVC对文件上传的支持,该功能支持需要使用到两个jar包:cmmons-fileupload-1.2.2.jar和commons-io-2.1.jar。

  在controller类中添加输入参数MultipartFile,通过HttpServletRequest来获取文件拷贝的真实路径,对应代码如下所示:

@RequestMapping(value = "/add", method = RequestMethod.POST)
public String add(@Validated Users user, BindingResult br,Model model, MultipartFile attach,HttpServletRequest req) throws IOException {// 一定要紧跟Validate之后写验证结果类
    if (br.hasErrors()) {
        model.addAttribute("user", user);
        // 如果有错误直接跳转到add视图
        return "user/add";
    }

    String realpath = req.getSession().getServletContext().getRealPath("/resources/upload");

    File f = new File(realpath+"/"+attach.getOriginalFilename());
    FileUtils.copyInputStreamToFile(attach.getInputStream(),f);

    users.put(user.getUsername(), user);
    return "redirect:/user/users";
}

  在前台页面添加input标签,设置type属性为file,并且把提交enctype属性值设置为multipart/format-data,对应add.jsp代码如下所示:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="sf" uri="http://www.springframework.org/tags/form" %>
<!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=UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 此时没有写action,直接提交会提交给/add -->
<!-- 将表单中的值添加到modelAttribute的属性值user中 -->
<sf:form method="post" modelAttribute="user" enctype="multipart/form-data">
    Username:<sf:input path="username"/><sf:errors path="username"/><br/>
    Password:<sf:password path="password"/><sf:errors path="password"/><br/>
    Nickname:<sf:input path="nickname"/><br/>
    Email:<sf:input path="email"/><sf:errors path="email"/><br/>
    Attach:<input type="file" name="attachs"/><br/>
    <input type="submit" value="添加用户"/>
</sf:form>
</body>
</html>

  在hello-servlet.xml文件中设置文件上传需要的multipartReslver,对应代码如下所示:

<!-- 设置multipartResolver才能完成文件上传 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <property name="maxUploadSize" value="5000000"></property>
</bean>

注:此处在前台add.jsp页面中上传文件的name属性值必须与controller类中的文件名对应的入参名称保持一致。

时间: 2024-10-08 00:00:49

springMVC入门-09的相关文章

SpringMVC入门

介绍 SpringMVC是一款Web MVC框架. 它跟Struts框架类似,是目前主流的Web MVC框架之一. 本文通过实例来介绍SpringMVC的入门知识. 实例 本文所写的实例是一个员工的CRUD demo. 用idea编写,基于maven, Web框架使用SpringMVC,视图采取Freemarker技术,数据库使用MySQL,用Hibernate4存储数据. 本文关于其他一些内容 如maven的pom文件内容,spring常规bean,事务,数据源的配置等不会详细描述,可自行下载

springmvc入门之HelloWorld篇

springmvc是一个基于spring的mvc框架,各种优点啥的用过就知道了.下面开始讲HelloWorldController的实现. 1.开发环境搭建<导jar包+配置文件> 1.1 新建web工程springmvc,导入springmvc所需的jar包,因为springmvc是基于spring的,所以必须包含spring的jar包,我用的版本是spring3.1.0.导入以下jar包: 1.2 配置web.xml <!-- spring mvc配置 处理*.action和*.do

2017-5-23 SpringMVC入门(一)

2017-5-23 SpringMVC入门(一) SpringMVC Maven Java 1.依赖引入 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.ap

Spring-MVC入门实例 (一)

Spring MVC是非常优秀的MVC框架,由其是在3.0版本发布后,现在有越来越多的团队选择了Spring3 MVC了.Spring MVC结构简单,应了那句话简单就是美,而且他强大不失灵活,性能也很优秀. Struts2 VS  Spring MVC Struts2  特点 也是比较优秀的MVC构架,优点非常多比如良好的结构.但这里想说的是缺点,Struts2由于采用了值栈.OGNL表达式.struts2标签库等,会导致应用的性能下降.Struts2的多层拦截器.多实例action性能都很好

SpringMVC入门之注解式控制器

上面一篇写的是配置式的控制器现在已经不推荐使用了,其实注解式控制器和它的差不多只不过 更简洁而已! 1.还是在web.xml中进行配置DispatcherServlet <servlet> <servlet-name>spring</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-para

框架 day68 SpringMVC入门(框架原理,springmvc和mybatis整合)

第一天:注解开发基础(springmvc入门) springmvc框架原理(掌握) DispatcherServlet前端控制器.HandlerMapping处理器映射器.HandlerAdapter处理器适配器.ViewResolver视图解析器 springmvc入门程序 目标:加深对springmvc三大组件的认识 查询商品信息 重点掌握注解的HandlerMapping处理器映射器.HandlerAdapter处理器适配器(掌握) springmvc和mybatis整合(掌握) 通过一个

SpringMVC 入门教程知识

SpringMVC 入门知识 一.SpringMVC入门介绍 springMVC代替struts2去整合hibernate实现功能的框架.使用springMVC有两个配置文件需要配置,一 个是applicationContext.xml.另一个是web.xml,在applicationContext.xml里面配置事务管理器以及属性注入等.web.xml里面要添加一个springMVC的servlet的注册和映射(DispatcherServlet),这个servlet是 springMVC的核

SpringMVC入门配置和简单实现

web.xml的配置 <!-- springmvc中央控制器 --> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> </servlet> <servlet-mapping> <servlet-n

SpringMVC入门(一)

一. SpringMVC入门 1.1 Springmvc是什么 Spring web mvc和Struts2都属于表现层的框架,它是Spring框架的一部分,我们可以从Spring的整体结构中看得出来,如下图: 1.2  Springmvc处理流程 二. 入门程序2.1 导包 2.2 创建springmvc.xml SpringMVC本身就是Spring的子项目,对Spring兼容性很好,不需要做很多配置. 这里只配置一个Controller扫描就可以了,让Spring对页面控制层Control