File struts2可以';t上传文件。无效的字段值

File struts2可以';t上传文件。无效的字段值,file,validation,file-upload,upload,struts2,File,Validation,File Upload,Upload,Struts2,当我尝试在struts2中上载文件时,我在视图中看到一个验证错误:字段“上载”的字段值无效。 在JBoss控制台中,我得到: 10:37:56,140 WARN [OgnlValueStack] Error setting expression 'upload' with value '[Ljava.lang.String;@17c7b19' ognl.MethodFailedException: Method "setUpload" failed for object bm.action.c

当我尝试在struts2中上载文件时,我在视图中看到一个验证错误:字段“上载”的字段值无效。 在JBoss控制台中,我得到:

10:37:56,140 WARN  [OgnlValueStack] Error setting expression 'upload' with value '[Ljava.lang.String;@17c7b19'
ognl.MethodFailedException: Method "setUpload" failed for object bm.action.content.SaveNewBannerAction@13ebb53 [java.lang.NoSuchMethodException: bm.action.content.SaveNewBannerAction.setUpload([Ljava.lang.String;)]
    at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1289)
    at ognl.OgnlRuntime.setMethodValue(OgnlRuntime.java:1478)
    at ognl.ObjectPropertyAccessor.setPossibleProperty(ObjectPropertyAccessor.java:85)
    at ognl.ObjectPropertyAccessor.setProperty(ObjectPropertyAccessor.java:162)
...
...
Caused by: java.lang.NoSuchMethodException: bm.action.content.SaveNewBannerAction.setUpload([Ljava.lang.String;)
    at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1230)

/-- Encapsulated exception ------------\
java.lang.NoSuchMethodException: bm.action.content.SaveNewBannerAction.setUpload([Ljava.lang.String;)
    at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1230)
    at ognl.OgnlRuntime.setMethodValue(OgnlRuntime.java:1478)
    at ognl.ObjectPropertyAccessor.setPossibleProperty(ObjectPropertyAccessor.java:85)
    at ognl.ObjectPropertyAccessor.setProperty(ObjectPropertyAccessor.java:162)
我的jsp:

<div class="v4DDfiltering">
    <s:fielderror/>
    <s:form id="saveNewBannerForm" name="saveNewBannerForm"
        action="SaveNewBannerAction" theme="simple" method="POST" enctype="multipart/form-data">
...
        <div class="OneFilteringRow">
            <s:label for="upload" value="Plik:*" />
            <s:file id="upload" name="upload"/>
        </div>
...
        <div class="OneFilteringRow">
            <s:url id="saveNewBannerUrl" action="SaveNewBannerAction" />

            <sj:a href="%{saveNewBannerUrl}" targets="messagesDiv"
                formIds="saveNewBannerForm">
                Save
            </sj:a>

        </div>
    </s:form>
</div>

我将非常感谢您的帮助。

您的jsp应该是这样的:

<div class="v4DDfiltering">
    <s:fielderror/>
    <s:form id="saveNewBannerForm" name="saveNewBannerForm"
        action="SaveNewBannerAction" theme="simple" method="POST" enctype="multipart/form-data">
...
        <div class="OneFilteringRow">
            <s:label for="upload" value="Plik:*" />
            <s:file id="upload" name="upload"/>
        </div>
...
        <div class="OneFilteringRow">
            <sj:submit targets="messagesDiv"/>
        </div>
    </s:form>
</div>

...
...
或:


...
...
拯救
<div class="v4DDfiltering">
    <s:fielderror/>
    <s:form id="saveNewBannerForm" name="saveNewBannerForm"
        action="SaveNewBannerAction" theme="simple" method="POST" enctype="multipart/form-data">
...
        <div class="OneFilteringRow">
            <s:label for="upload" value="Plik:*" />
            <s:file id="upload" name="upload"/>
        </div>
...
        <div class="OneFilteringRow">
            <sj:submit targets="messagesDiv"/>
        </div>
    </s:form>
</div>
<div class="v4DDfiltering">
    <s:fielderror/>
    <s:form id="saveNewBannerForm" name="saveNewBannerForm"
        action="SaveNewBannerAction" theme="simple" method="POST" enctype="multipart/form-data">
...
        <div class="OneFilteringRow">
            <s:label for="upload" value="Plik:*" />
            <s:file id="upload" name="upload"/>
        </div>
...
    </s:form>
    <sj:a targets="messagesDiv" formIds="saveNewBannerForm">Save</sj:a>
</div>