BeanUtils 和 PropertyUtils 动态获取Java 属性的应用

在某些动态表单的情况下,不好直接通过 get / set 的方式来给对象赋值,因为属性的名称是动态的,那么可以通过 Java 的工具类来进行这个操作:

基本思路就是把值放入 HASHMAP 当中, (name , value)  那么,BeanUtils.populate(Class, HashMap(name,value));  就可以了。

 

 

Map baseValues = new HashMap();

for (Iterator it = baseMap.values().iterator(); it.hasNext();) {
			PreceptConfigField field = (PreceptConfigField) it.next();
			Object value = null;
			try {
				value =  request.getParameter(field
						.getName());
			} catch (Exception e) {
				String error = "投保方案读取页面基本信息出错!";
				log.error(error, e);
				errors.add(error);
			}
			baseValues.put(field.getName(), value);
		}
		try {
			PolicyBeanUtil.populate(tScheme, baseValues);
		} catch (Exception e) {
			String error = "页面基本信息对象填充出错!";
			log.error(error, e);
			errors.add(error);
		}

 

还有一些情况,不好直接获取 JavaBean 的值, 因为要获取的属性的名称也是动态的, 也可以通过 PropertyUtils 来达到目的 :

 

String value = "";
		if(this.scheme != null){
			Object temp = PolicyBeanUtil.getProperty(this.scheme, field.getName());
			if(temp != null){
				value = temp.toString();
			}

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值