今天老板让使用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)的工具类
希望对大家有帮助!
本文介绍了一种利用反射机制简化JSP实体类参数设置的方法。通过反射可以自动将请求参数映射到实体类属性上,避免了手动设置每一项属性的繁琐过程。该方法适用于属性较多的实体类。
20万+

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



