今天老板让使用jsp+servlet+jdbc做一个后台的数据查询,很郁闷,为什么不用Spring和mybatis或者hibernate,但是毕竟人家是老板,还是照做了。但是在开发过程中,将request中的属性封装到实体类中时,由于实体类中的属性太多了,有20多条,不想一条一条的写,所以想到了反射。
public void setParameter(Map<String, String[]> map) throws Exception{
Class<? extends Book> clazz = this.getClass();
Field[] fields = clazz.getDeclaredFields();
for(Field field:fields){
String fieldName = field.getName();
if(map.get(fieldName) != null){
field.set(this,ConvertUtils.convert(map.get(fieldName), field.getType()));
}
}
}
使用场景:
入参map:request.getParameterMap();当前request传递的所有参数
ConvertUtils.convert(map.get(fieldName), field.getType());
用于将String字符串转为指定的数据类型(实体类属性对应的数据类型),属于beanUtils(org.apache.common.beanutils)的工具类
希望对大家有帮助!