使用Spring MVC和CommonsMultipartResolver上传文件无法按预期工作

时间:2010-11-18 16:51:42

标签: java spring jsp spring-mvc apache-commons

我正在尝试使用Spring CommonsMultipartResolver上传文件,但无法识别控制器。我收到此错误消息:“请求的资源(/WebIDE/WEB-INF/views/file/upload.jsp)不可用。”

我在我的库中添加了commons-fileupload-1.2.2.jar和commons-io.1.3.2.jar。我在我的应用程序上下文中添加了以下内容:

<context:component-scan base-package="org.webide.mvc" />

<bean id="multipartResolver"
  class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

  <!-- specify maximum file size in bytes -->
  <property name="maxUploadSize" value="100000"/>
</bean>

我正在使用Pojo作为我的控制器:

@Controller
@RequestMapping (value = "/file")
public class FileController {

  @RequestMapping (value = "/upload")
  public String uploadFile(@RequestParam("file") CommonsMultipartFile file){
    if (!file.isEmpty()){
      byte fileBytes[] = file.getBytes();
      return "mainView";
    }else{
      return "errorView";
    }
  }

我的HTML现在非常简单:

<form method="post" action="file/upload" enctype="multipart/form-data">
            <input type="text" name="name"/>
            <input type="file" name="file"/>
            <input type="submit"/>
</form>

如果我遗失了什么,能告诉我吗? 感谢

1 个答案:

答案 0 :(得分:0)

主网址为http://localhost:8084/WebIDE/,然后action =“/ file / upload”应该向使用@Controller标记的类发送请求。我放了一个断点,它根本没有拿起控制器。

我必须更改spring配置,将应用程序上下文中指定的所有内容(见上文)复制到调度程序servlet mvc-config.xml,并更改我声明它们的方式,以便上下文是mvc-config的父级.XML

看起来这样做了! :)

再次感谢您的帮助和建议。