4

struts2fileuploadメカニズムを使用して奇妙な動作をする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メソッドを追加しました。

4

1 に答える 1

0

削除することでこの問題を修正できます

<interceptor-ref name="fileUpload">
        <param name="maximumSize">10000000</param>
</interceptor-ref>

からstruts.xml

于 2012-10-04T11:15:12.607 に答える