Struts2上传文件问题若干

来源:互联网 发布:听音乐的软件 编辑:程序博客网 时间:2024/05/22 01:41

最近在自学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"/>
0 0
原创粉丝点击