DataSerieal.java 2.2 KB
package tools;

import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

import javax.servlet.http.HttpServletRequest;


public class DataSerieal {
	public static void ModelSet(Object obj, HttpServletRequest request){
		Field[] field = obj.getClass().getDeclaredFields();
		for(int i = 0; i < field.length; i ++)
		{
			//System.out.println(field[i].getName());
			String name = field[i].getName();
			String setter = name.substring(0, 1).toUpperCase()+name.substring(1);
			String type = field[i].getGenericType().toString();		//获取属性类型
			try {
				Method[] ms = obj.getClass().getMethods();	//获取setter函数
				for(int j = 0; j < ms.length; j ++)
				{
					//找到了方法
					if(ms[j].getName().substring(0, 3).equals("set") && ms[j].getName().substring(3).equals(setter))
					{
						Method m = ms[j];
						//System.out.println("type:"+type);
						if(type.equals("class java.lang.String"))
						{
							String value = RequestUtils.getQueryParam(request, name);
							if(value != null && value.length() > 0)
								m.invoke(obj, value);
							else
							{
								value = null;
								m.invoke(obj, value);
							}
						}
						else if(type.equals("class java.lang.Integer") || type.equals("int"))
						{
							String value = RequestUtils.getQueryParam(request, name);
							if(value != null && value.length() > 0)
								m.invoke(obj, Integer.parseInt(value));
						}
						else if(type.equals("class java.lang.Long") || type.equals("long"))
						{
							String value = RequestUtils.getQueryParam(request, name);
							System.out.println(value);
							if(value != null && value.length() > 0)
								m.invoke(obj, Long.parseLong(value));
						}
						else if(type.equals("class java.lang.Boolean"))
						{
							
						}
						break;
					}
				}
			} catch (SecurityException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IllegalAccessException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IllegalArgumentException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (InvocationTargetException e) {
			// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
}