关于BeanUtil不能封装Date类型的解决方法

1.在封装前写一个转换器,在转换器中将字符床转换为Date,BeanUtil就会自己调用该转换器,代码如下

Map parameterMap = request.getParameterMap();
		User user = new User();
		try {
			//beanutil无法封装Date类型,需要注册一个转换器将字符串转换成Date对象
			ConvertUtils.register(new Converter() {
				
				@Override
				public Object convert(Class clazz, Object value) {
					//clazz是目的对象的字节码对象,value是要转换的对象
					SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
					Date parse = null;
					try {
						parse = sdf.parse(value.toString());//将格式为yyyy-MM-dd转换为Date类型
					} catch (ParseException e) {
						e.printStackTrace();
					}
					return parse;
				}
			},Date.class);
			BeanUtils.populate(user, parameterMap);//将注册信息封装到user,当封装到Date类型时会自动调用上面写好的转换器

你可能感兴趣的:(小记)