struts2 做文件上传,运行后并没有成功,控制台报错如下:
ognl.MethodFailedException: Method "setUploadImage" failed for object…… 和java.lang.NoSuchMethodException:两种错误。
经过查找,主要错误原因在于在jsp 文件的form表单漏掉了method属性设置,并将其设置为post. 输出正确。。
总结:
1》如果没有设置form表单的提交方式,那么它会默认是get方式提交数据。可以查看URl上的地址如下:
http://localhost:8080/struts2/fcx/fileupload.action?uploadImage=XXXX-SoftwareEnginering.jpg
2》还有如果上传的过大。也会产生错误:
警告: Request exceeded size limit!
org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (7401556) exceeds the configured maximum (2097152)
有蓝色字可以看出默认文件大小是2097152.而上传的文件大小7401556.故而报错。方法是可以通过设置常量struts.mutilpart.maxSize扩大文件大小限制。。当然如果是上传大文件,则不能通过web上传,只能通过应用程序上传。