5

私のjspにはhtml:fileこのようなものがあり、フォームにはゲッターとセッターがあります。しかし、走っているときに私は得ました

Caused by: java.lang.IllegalArgumentException: Cannot invoke com.app.app.struts.forms.MyForm.setDocfile on bean class 'class com.app.app.struts.forms.MyForm'
    - argument type mismatch - had objects of type "java.lang.String" but expected signature "org.apache.struts.upload.FormFile"

jsp:

<html:file property="docfile" styleId="docfile" size="45" ></html:file>

ページを送信するときにのみエラーが発生し、何もアップロードしていません。(アップロード フィールドは必須フィールドではありません。)

4

2 に答える 2

10

エンコーディングに問題があるようです。struts フォームは送信をファイルのタイプとして認識しません。フォームの enctype 属性を にmultipart/form-data、メソッドをに設定してpostください。

したがって、次のものが必要です。

<html:form action="/somePath" enctype="multipart/form-data" method="post"></html:form>

これにより、検証が台無しになる可能性があることに注意してください。詳細については、このスレッドを参照してください。

于 2013-01-11T14:16:28.013 に答える
-1

この依存関係をプロジェクトに追加します。

    <dependency>
        <groupId>commons-fileupload</groupId>
        <artifactId>commons-fileupload</artifactId>
        <version>1.2.1</version>
    </dependency>

    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>1.4</version>
    </dependency>
于 2018-01-06T14:06:44.563 に答える