您的位置:首页 > 编程语言 > Java开发

Struts2上传文件问题若干

2015-08-29 22:14 387 查看
最近在自学SSH框架,本来以为Struts2中的上传很简单,结果,花了一晚上才弄出来。

一直有两个问题,一个是

No result defined for action XXX and result input

这个问题引起的原因有很多,在我这里的情况是,上传的form表单默认的是文本数据,只要加入

enctype="multipart/form-data"


就好了。

另外一个问题是一直获取不到String filename,但是File file却可以获取,看了好多的实例,才发现是不仔细的问题。

除了第一个File类型的字段的set方法还是以常规的方式命名,另两个String类型的字段的set方法必须分别以“File字段的set方法名+FileName”和“File字段的set方法名+ContentType”来命名。

所以,在方法里面应该写成

// 封装上传文件域的属性
private File bookFile;
// 封装上传文件类型的属性
private String contentType;
// 封装上传文件名的属性
private String fileName;

public void setBookFile(File bookFile) {
this.bookFile = bookFile;
}
public void setBookFileContentType(String contentType) {
this.contentType = contentType;
}
public void setBookFileFileName(String fileName) {
this.fileName = fileName;
}


另外,上传为文件名为中文的时候,保存的文件会乱码,这个问题只要把页面和struts.xml的编码都设为GBK就好了。

<constant name="struts.i18n.encoding" value="GBK"/>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: