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();
			}

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(java,Scheme)