package com.util;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.dom4j.Document;
import org.dom4j.Element;
import alarminterface.CglibBean;
import backupsubsystem.testclient.TestBean;
public class ParameterUtil {
public static void main(String[] args)
{
/* XmlHandle xmlHandle = new XmlHandle();
try
{
Document document = null;
document = xmlHandle.getXmlFromFile("conf/Test.xml");
List root = document.selectNodes("/conf/action");
Map hm = new HashMap();
TestBean beans = new TestBean();
if (root != null)
{
for(Object o:root){
Element e = (Element) o;
loopElement(e,hm);
}
Iterator iter = hm.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry m=(Map.Entry)iter.next();
setFormBean(beans,(String)m.getKey(),(String)m.getValue());
// System.out.println(m.getKey()+"aaa");
}
}
System.out.println(beans.getCon_driver()+":"+beans.getCon_url());
} catch (Exception e)
{
e.printStackTrace();
}*/
}
//该方法第一个参数就是你要填充数据的BEAN,第二个参数是具体给哪个参数赋值,第三个参数是赋值的数据
public static void setFormBean(Object bean,String key,String value) {
Class c = bean.getClass();
//System.out.println(c+":"+key+":"+value);
Method[] ms = c.getMethods();
for (int i = 0; i < ms.length; i++) {
String name = ms[i].getName();
if (name.startsWith("set")) {
Class[] cc = ms[i].getParameterTypes();
if (cc.length == 1) {
String type = cc[0].getName(); // parameter type
try {
// get property name:
String prop = Character.toLowerCase(name.charAt(3))
+ name.substring(4);
//System.out.println("%% "+prop);
// get parameter value:
String param = value;
if(key.equals(prop))
{
if (param != null && !param.equals("")) {
// ms.setAccessible(true);
if (type.equals("java.lang.String")) {
ms[i].invoke(bean, new Object[] { param });
} else if (type.equals("int")
|| type.equals("java.lang.Integer")) {
ms[i].invoke(bean, new Object[] { new Integer(
param) });
} else if (type.equals("long")
|| type.equals("java.lang.Long")) {
ms[i].invoke(bean, new Object[] { new Long(
param) });
} else if (type.equals("boolean")
|| type.equals("java.lang.Boolean")) {
ms[i].invoke(bean, new Object[] { Boolean
.valueOf(param) });
} else if (type.equals("java.util.Date")) {
}
}
break;
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
}
}
}