struts2
fileuploadメカニズムを使用して奇妙な動作をするWebアプリケーションを開発したいのですが、その理由がわかりfileUpload
ません。
struts.xmlでfileuploadメカニズムを構成しました。
<package name="com.actions" namespace="/" extends="struts-default">
<action name="excelupload" class="com.actions.FileuploadAction">
<interceptor-ref name="fileUpload">
<param name="maximumSize">10000000</param>
</interceptor-ref>
<result name="success">/fileupload.jsp</result>
<result name="input">/fileupload.jsp</result>
</action>
</package>
対応するJSP:
<s:form action="excelupload" method="post" enctype="multipart/form-data">
<s:file name="excelfile" label="file" />
<s:submit name="upload" value="upload" align="center" />
</s:form>
対応するアクション:
public class FileuploadAction extends ActionSupport{
File excelfile;
public File getExcelfile() {
return excelfile;
}
public void setExcelfile(File excelfile) {
this.excelfile = excelfile;
}
public String execute(){
System.out.println(excelfile.getName());
return SUCCESS;
}
}
小さなファイルをアップロードすると、すべてが正常に機能します。しかし、2 MBを超えるファイルをアップロードしようとすると、アプリケーションは次の例外をスローします。
org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException: the request
was rejected because its size (3244109) exceeds the configured maximum (2097152)
この問題を修正するためにstruts-default.properties
、
struts.multipart.maxSize=20097152
アプリのクラスパスのルートに移動します。
これで例外は修正されましたが、ファイルのサイズに関係なく、現在excelfile
は常にです。null
誰かが私が間違っていることを知っていますか?
編集:デプロイメントにはTomcatを使用します 編集:不足しているgetterメソッドとsetterメソッドを追加しました。