MVC

本文介绍了一种用于简化实体类填充的实用工具类——BeanUtils。该类能自动将表单提交的数据映射到相应的实体类属性中,通过反射机制实现属性值的设置。文章详细解释了BeanUtils.populate方法的工作原理,包括如何解析表单数据、通过反射获取实体类的字段和方法,以及如何正确地将数据类型进行转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实体帮助类
public class BeanUtils {
//将获取的页面提交的数据放入到对应的实体类的对应属性中
public static void populate(Map<String, String> map,Object obj) {//实体类的对象
//通过对象获取Class
Class c=obj.getClass();

	//遍历map集合
	//先获取所有的键
	for (String name : map.keySet()) {
		//这里key就是表单元素的name值
		
		//通过键获取值 value就是表单提交的数据
		String value=map.get(name);

		//通过表单中的name拼接出赋值的属性的对应set方法 setName(String name)
		StringBuffer sb=new StringBuffer("set");
		//将表单的name的首字母大写
		sb.append(name.substring(0,1).toUpperCase());
		//将剩下的字母拼接
		sb.append(name.substring(1));
		//通过方法名称获取方法对象 Method
		try {
			//获取属性 通过属性名称获取属性
			Field field=c.getDeclaredField(name);
			//解锁
			field.setAccessible(true);

			//通过拼接出来方法名称获取方法对象
			Method method=c.getDeclaredMethod(sb.toString(), field.getType());
			
			//将字符串转换成Integer int

			Object object;
			//判断当前的赋值的属性是否是日期类型 95%类型转换
			if(field.getType().getName().equals("java.sql.Date")) {
				object=Date.valueOf(value);
			}else {
				//要转换的类型 Double Integer Float 都有一个字符串参数的构造方法
				//Integer i=new Integer(""); Float f=new Float("")
				object=field.getType().getConstructor(String.class).newInstance(value);
			}
			
			
			//执行方法
			method.invoke(obj, object);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} 	
	}	
}

}
2.图
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值