在我的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>
仅在提交页面时才收到错误,而我没有上传任何内容。 (上传字段不是必填项。)
答案 0 :(得分:8)
编码似乎有问题,struts表单不会将提交识别为文件类型,请确保将表单的enctype属性设置为multipart/form-data
,方法为post
。
所以你应该:
<html:form action="/somePath" enctype="multipart/form-data" method="post"></html:form>
请注意,这可能会使您的验证陷入困境。有关更多信息,请参阅this主题。
答案 1 :(得分:0)
将此依赖项添加到您的项目中:
<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>