BeanUtilsとPropertyUtilsがJava属性を動的に取得するアプリケーション

1373 ワード

ダイナミックフォームの場合、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();
			}