准备

  1. 如果你项目中使用了spring security的话,参考上一篇文章,使用上篇的第二种方法,并去掉MultipartFilter(如果有配置的话),否则得不到文件

  2. 流程中的变量(如用var标签定义的变量),都需要实现Serializable接口。

实现过程

在pom.xml文件中加入下列依赖:

<!-- 支持文件上传 --><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.2.1</version> </dependency><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.4</version></dependency>

在spring-servlet.xml(Spring MVC的配置文件)中加入文件上传解析器:

<!-- 文件上传解析器--> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><!-- one of the properties available; the maximum file size in bytes --><property name="maxUploadSize" value="10485760"/></bean>

实体类,记住要实现Serializable接口,属性类型是MultipartFile

@Component
public class GoodsEntity implements Serializable{private static final long serialVersionUID = 1L;private MultipartFile images; public MultipartFile getImages() {return images;}public void setImages(MultipartFile images) {this.images = images;}}

流程定义代码,没什么特别的:

<?xml version="1.0" encoding="UTF-8"?>
<flow xmlns="http://www.springframework.org/schema/webflow"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/webflowhttp://www.springframework.org/schema/webflow/spring-webflow-2.0.xsd"><var name="goods" class="com.huanle.model.entity.GoodsEntity"/><view-state id="viewfirst" view="/views/user/releasegoods/release_first.jsp" model="goods"><transition on="submit" to="viewsecond"></transition></view-state> <view-state id="viewsecond" view="/views/user/releasegoods/second.jsp" model="goods"><transition on="submit" to="performReleaseGoodsAction"></transition></view-state><action-state id="performReleaseGoodsAction" ><evaluate expression="goodsService.save(goods)"></evaluate><transition to="returntouserindex"></transition></action-state><end-state id="returntouserindex" view="/views/user/seller/index.jsp"></end-state><global-transitions><transition on="cancel" to="returntouserindex"></transition></global-transitions></flow>

上传表单代码,无需特别配置:

 <form:form action="${flowExecutionUrl}&_eventId=submit&${_csrf.parameterName}=${_csrf.token}" method="post" commandName="goods" enctype="multipart/form-data"><input type="hidden" name="_flowExecutionKey" value="${flowExecutionKey}"/>商品图片:<form:input id="images" path="images" type="file" multiple="multiple" /><input type="submit" >       </form:form>

就这样就可以了

参考文档

  1. Handling File Uploads in webflow

  2. Spring’s multipart (file upload) support in Spring MVC

spring webflow : 上传单个文件实例相关推荐

  1. webflow ajax,java开发之spring webflow实现上传单个文件及多个文件功能实例

    本文实例讲述了java开发之spring webflow实现上传单个文件及多个文件功能.分享给大家供大家参考,具体如下: 上传单个文件 准备 1. 如果你项目中使用了spring security的话 ...

  2. Spring webflow:上传多个文件

    上篇讲了上传单个文件,在上篇的基础上稍作修改就可以上传多个文件了. 实现 首先,实体类要修改,使用List来存储多个文件: @Component public class GoodsEntity im ...

  3. express,multer,jQuery前端后端上传单个文件

    文章目录 先安装基本的模块 附上multer的github当中别人汉化的API文档 开始创建基本express(上传图片) 测试是否正常 前端部分 前端需要注意的 multer使用 multer({} ...

  4. 利用 Spring MVC 上传多文件到指定目录 spring upload files

    本篇文章,我们会教你通过eclipse构建一个创建一个Java web项目并转为maven工程,实现用spring mvc将所选文件上传到指定目录 开发环境: 1.JDK 1.7 2.Maven 3. ...

  5. java spring mvc 上传_Java Spring MVC 上传下载文件配置及controller方法详解

    下载: 1.在spring-mvc中配置(用于100M以下的文件下载) 下载文件代码 @RequestMapping("/file/{name.rp}") public Respo ...

  6. 上传下载文件实例(vsftp服务器+nginx)

    上传下载文件实例(vsftp服务器+nginx) 页面(上传+下载) <form action="/pic/upload" enctype="multipart/f ...

  7. 文件上载限制4gb_新get!百度网盘破除上传单个文件超4GB限制

    现在网盘的限制是越来越多,国内还在免费+能用的也就剩百度网盘了.虽然随便注册个账号大家都能凑合用用,但非会员5GB的使用空间.上传/下载速率限制,加上下载大文件必须使用网盘客户端等,让小编发现百度网盘 ...

  8. python上传本地文件到ftp_python实现的简单FTP上传下载文件实例

    本文实例讲述了python实现的简单FTP上传下载文件的方法.分享给大家供大家参考.具体如下: python本身自带一个FTP模块,可以实现上传下载的函数功能. #!/usr/bin/env pyth ...

  9. Python+selenium 自动化 - 实现自动导入、上传外部文件实例演示

    一开始我觉得导入外部文件是需要操作 windows 的文件窗口呢,后来发现原来不用那么麻烦,只要给文件上传的元素传一个本地路径就好了,就是一个 input 类型的. 右键元素点击检查可以看到对应的元素 ...

最新文章

  1. poj2017——Speed Limit
  2. 使用VS插件在VS2012/2013上编辑和调试Quick-Cocos2d-x的Lua代码
  3. 配置FTP服务(一):pureftp部署和优化
  4. 简明易懂的call apply
  5. 苹果电脑连服务器传文件慢,两个mac之间快速传递文件
  6. Kudu : kudu 主键相关
  7. java案例代码5--编码的方式--密码
  8. 一年多 Let’s Encrypt 的 SSL 证书使用有感
  9. 高等代数(邱维声):高等代数的研究对象
  10. rx560d linux 图形设计,RX560D与560区别对比:RX 560D和RX 560哪个好
  11. 学创客机器人编程材料费贵吗_创客机器人课程容易学习吗
  12. 负数除以整数的余数怎么算?
  13. 地理信息系统GIS基础知识
  14. PPT一次性压缩图片
  15. PNG图片压缩原理--屌丝的眼泪 #1
  16. 投票服务器维护时间,【维护】4月1日官方维护公告(正式服)
  17. python--数据挖掘开头(KNN使用,OneR介绍)
  18. 这猪蹄是人类能吃完的?
  19. 【Pytorch基础教程34】EGES召回模型
  20. 北京博奥智源,发布ERP系统之财务管理及成本核算模块开发功能

热门文章

  1. 9、Flutter 实现 生成二维码
  2. oracle 10g冷备份恢复处理详细步骤
  3. centos中nodejs npm环境完全删除
  4. sqlserver获得到当前游标中存在的数据行数
  5. java手机飞行模式_用了这么多年手机才知道,飞行模式还藏着这6个功能!太好用了...
  6. 2019贵州大学计算机研究生,贵州大学2019年硕士研究生招生拟录取名单公示(一)...
  7. android 杀 服务器,android busybox httpd搭建简单web服务器
  8. 【Makefile由浅入深完全学习记录5】预定义变量的使用
  9. Storm环境搭建(分布式集群)
  10. 【bzoj4444】[Scoi2015]国旗计划 倍增