主要是做一些记录:
1、主要是属性反射,下面给出一个struts1中通过属性名来获取校验上传文件的格式。
public boolean validateFileType(String propertyName) throws Exception{
PropertyDescriptor[] propertydesc = Introspector.getBeanInfo(this.getClass()).getPropertyDescriptors();//获取类中属性的描述
boolean exsit = false;
for(PropertyDescriptor property : propertydesc){
if(property.getName().equals(propertyName)){//如果类中有propertyName属性
exsit = true;
Method method = property.getReadMethod();//获取该属性的getter方法
if(method!=null){
FormFile formfile = (FormFile) method.invoke(this);//FormFile类 propertyName属性就是FormFile变量名
if(formfile!=null && formfile.getFileSize()>0){
List<String> arrowType = Arrays.asList("image/bmp","image/png","image/gif","image/jpeg","image/pjpeg");
return arrowType.contains(formfile.getContentType().toLowerCase());
}
}else{
new RuntimeException(propertyName+"属性的getter方法不存在");
}
}
}
if(!exsit) new RuntimeException(propertyName+"属性不存在");
return true;
}