问题引入?比如在一个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里面就有了类的每一个属性的值,而且是从第一个属性到最后一个属性,从而可以进行其他的业务
本文介绍了一种利用Java反射机制批量获取并处理实体类中所有属性值的方法,适用于后台处理大量表单数据的场景。
1万+

被折叠的 条评论
为什么被折叠?



