使用struts2的Action属性接收上传文件时,struts2有一些设计上的独到之处。看看下面的例子:
public class FileUploadActionDemo {
File upload;
String uploadFileName;
String uploadContentType;
public String uploadFile() {
//针对上传文件的操作
}
//seter、getter方法略
}
在上面的类中,有三个属性:upload、uploadFileName、uploadContenttype。只要页面中上传文件的标签有值,也就是在页面中已经选择了上传文件并提交,那么struts2自动把你上传文件的只想这个文件对象的引用和这个文件的文件名、文件MIME类型的值分别传递到这个action中这三个属性上。
重点是,你只需要在页面上一个指定属性即可。其他的操作都由struts2来完成。这个属性就是action中File类型的属性名。
也就是说,在上传文件标签中只需要指定action中File类型的属性名,在传递值时,struts2会自动寻找这个属性名对应的分别以FileName和ContentType结尾的属性并把响应值传入。
换句话说File类型的属性名是xxx,那么响应的两外两个属性名分别为xxxFileName和xxxContentType。