对于spring mvc来说2.0以后大量使用注解确实简单很多,最近在一个项目使用spring mvc遇到上传文件问题,由于使用了注解所以网上没有找到相关使用注解上传文件的。官方文档又没有更新都是老的,看了一些源码这才解决。
使用注解很简单。
写个例子:控制器类 FileUploadController.java
[java]view plaincopyprint? packageorg.upload.test;importorg.springframework.stereotype.Controller;importjava.io.FIle;importorg.springframework.web.bind.annotation.RequestParam;importorg.springframework.web.multipart.MultipartFile;/***FileUploadControllerforthefileupload.**@authorlhbdir*@since09.01.*/@ControllerpublicclassFileUploadController{@RequestMapping("/imageUpload")publicStringprocessImageUpload(@RequestParam("imageFile")MultipartFileimage)throwsIOException{FileCopyUtils.copy(image.getBytes(),newFile("c:/"+image.getOriginalFilename()));return"imageList";}}
@RequestParam("imageFile") MultipartFile image 是注解映射页面上传文件标签name属性,
页面 imageList.jsp里的内容,加上下面的就可以了。
[xhtml]view plaincopyprint? <tableborder="1"cellspacing="0"cellpadding="5"><formaction="imageUpload"method="post"encType="multipart/form-data"><tr<td>Content</td><td><inputtype="imageFile"name="image"><br></td></tr><tr><tdcolspan="2"><inputtype="submit"value="Uploadimage"></td></tr></form></table>
<input type="file" name="imageFile">此标签name与控制器类注解要一样.
下面的配置文件要写好,web.xml跟applicationContext.xml不用加什么跟正常的spring mvc一样配置就可以了,
servletName-servlet.xml (servletName是你配置在web.xml里的,不明白的去看一下spring MVC配置文档)
里加入以下代码做文件上传类的绑定:
<bean id="multipartResolver" class="org.springframework.monsMultipartResolver"/>
别忘了加入commons里的fileupload跟io两个JAR包,这样就可以了。