您的位置:首页 > 编程语言 > Java开发

java bean 与 表单自动匹配

2016-10-10 15:48 127 查看
public static void autoBind(Object bean,HttpServletRequest request){
Map<String, String[]> map=request.getParameterMap();
Set<String> key=map.keySet();
Class c=bean.getClass();
final String stringType="";
final Integer integerType=1;
final Short shortType=1;
final Long longType=(long) 1;
final Float floatType=(float) 1;
final Double doubleType=(double) 1;
final Character characterType='c';
final Boolean booleanType=true;
final Byte byteType=1;
Date dateType=new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Field[] fields=c.getDeclaredFields();
try {
for (Field field : fields) {
field.setAccessible(true);
PropertyDescriptor pd=new PropertyDescriptor(field.getName(), c);
Method method=pd.getReadMethod();
for(String k : key){
if(k.equals(field.getName())){
if(field.getType().isInstance(byteType) || field.getType()==byteType.TYPE)
field.set(bean, Byte.parseByte(map.get(k)[0]));
if(field.getType().isInstance(stringType))
field.set(bean, map.get(k)[0]);
if(field.getType().isInstance(integerType) || field.getType()==integerType.TYPE)
field.set(bean, Integer.parseInt(map.get(k)[0]));//设置属性值
if(field.getType().isInstance(shortType) || field.getType()==shortType.TYPE)
field.set(bean, Short.parseShort(map.get(k)[0]));
if(field.getType().isInstance(longType) || field.getType()==longType.TYPE)
field.set(bean, Long.parseLong(map.get(k)[0]));
if(field.getType().isInstance(characterType) || field.getType()==characterType.TYPE)
field.set(bean, Long.parseLong(map.get(k)[0]));
if(field.getType().isInstance(booleanType) || field.getType()==booleanType.TYPE)
field.set(bean, Boolean.parseBoolean(map.get(k)[0]));
if(field.getType().isInstance(floatType) || field.getType()==floatType.TYPE)
field.set(bean, Float.parseFloat(map.get(k)[0]));
if(field.getType().isInstance(doubleType) || field.getType()==doubleType.TYPE)
field.set(bean, Double.parseDouble(map.get(k)[0]));
if(field.getType().isInstance(dateType))
try {
field.set(bean, sdf.parse(map.get(k)[0]));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IntrospectionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: