有一个工作的Struts2 portlet环境,我无法在portlet模式下使Struts fileUpload工作。
我知道
我在一个精简的Spring Boot 2应用程序中尝试了相同的方法,出现了与主项目相同的问题。遵循代码
https://struts.apache.org/core-developers/file-upload.html
对于JSP和动作类。 portlet已创建,流程正常,但操作中没有文件。
标准Spring Boot 2带有额外的pom:
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-spring-plugin</artifactId>
<version>2.5.20</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
在struts.xml
<package name="uploadtest" extends="struts-portlet-default" namespace="/uploadtest">
<action name="uploadtestPrepare" class="bouvet.no.fileuploadtest.action.FileUploadSubmitAction">
<result name="success">/WEB-INF/struts2/test/fileUpload.jsp</result>
</action>
<action name="uploadTestSubmit" class="bouvet.no.fileuploadtest.action.FileUploadSubmitAction">
<result name="success">/WEB-INF/struts2/test/fileUpload.jsp</result>
</action>
</package>
和形式
<s:form action="uploadTestSubmit" method="post" enctype="multipart/form-data">
FileName: <s:property value="%{filename}"/>
<s:file name="upload" label="File" />
<s:submit/>
</s:form>
一个二传手
public void setUploadFileName(String filename) {
this.filename = filename;
}
这是portlet模式中的错误还是我错过了一个关键依赖项,一个组件,版本?替代方法?
在图像中,JSR168调度程序中有一个断点,该文件存在。第一个在服务器之后运行的代码。 breakpoint in JSR168 dispatcher