5

在我的jsp中,我有一个html:file这样的,并且在表单中我有getter和setter。但是在跑步时我得到了

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-datapost.

所以你应该有:

<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 回答