问题引入?比如在一个jsp表单页面有几百个填报选项,提交传入后台,肯定后台不是一个一个的request.getParameter()的方法,我们可以采用以类的形式提交,关于这个实现在另外一篇文章有介绍,现在后台获取到了实体类,我们需要得到实体类里面的每一个值,然后按对应的系数去想乘,系数是个list,里面分别对应着类的第一个属性到最后一个属性字段,那么这个应该怎么实现?这就需要用到Java的反射了,具体实现如下:
//得到类对象
Class userCla = (Class) reportVo1.getClass();//reportVo1是一个实体类
Field[] fs = userCla.getDeclaredFields();
List<String> list=new ArrayList<>();
for(int i = 0 ; i < fs.length; i++){
Field f = fs[i];
f.setAccessible(true); //设置些属性是可以访问的
String val = (String) f.get(reportVo1);//得到此属性的值
list.add(val);
System.out.println("name:"+f.getName()+"\t value = "+val);
}
这样的话,list里面就有了类的每一个属性的值,而且是从第一个属性到最后一个属性,从而可以进行其他的业务