// 1_创建时间类型的转换器
DateConverter dt = new DateConverter();
// 2_设置转换的格式
dt.setPattern(“yyyy-MM-dd”);
// 3_注册转换器
ConvertUtils.register(dt, java.util.Date.class);
BeanUtils.populate(obj, map);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
public static T populate(Class clazz, Map<String, String[]> map) {
try {
T obj=clazz.newInstance();
// 由于BeanUtils将字符串"1992-3-3"向user对象的setBithday();方法传递参数有问题,手动向BeanUtils注册一个时间类型转换器
// 1_创建时间类型的转换器
DateConverter dt = new DateConverter();
// 2_设置转换的格式
dt.setPattern(“yyyy-MM-dd”);
// 3_注册转换器
ConvertUtils.register(dt, java.util.Date.class);
BeanUtils.populate(obj, map);
return obj;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
实例中使用场景,主要在注册 时候 form 表单提交的数据 进行封装 ;
实体bean ,User 类的成员属性 很多的时候 ,从request 请求中一个个 《大厂前端面试题解析+Web核心总结学习笔记+企业项目实战源码+最新高清讲解视频》无偿开源 徽信搜索公众号【编程进阶路】 获取 表单数据 效率低下 ,例如以下User 的成员属性如下:
如果按下面的这种方法做太过于复杂,如果数据量大,代码臃肿
//1.获取用户数据 封装到User对象中
String id = request.getParameter(“id”);
String name = request.getParameter(“name”);
String sex = request.getParameter(“sex”);
String address = request.getParameter(“address”);
String email = request.getParameter(“email”);
String qq = request.getParameter(“qq”);
String age = request.getParameter(“age”).equals(“”)?“18”:request.getParameter(“age”);
//2.封装数据
User user = new User();
user.setId(Integer.valueOf(id));
user.setName(name);
user.setSex(sex);
user.setAddress(address);
user.setEmail(email);
user.setQq(qq);