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(); } }
相关文章推荐
- jQuery插件(表单验证/表单返值/灯箱/图片放大/cookie/自动匹配/右键菜单/选中变色/相加相减)
- Html5之datalist-自动匹配的的表单输入
- DataGridView单元格内容自动匹配下拉显示
- linux中platform总线解析(四)(platform设备注册后自动匹配驱动)
- 自动提交表单的实现方法
- 编写代码自动清除表单文本框的历史记录
- 忆龙2009:用C#如何自动提交网页表单
- VC++ combobox模糊匹配,自动匹配
- 自动填写表单、邮箱自动申请、网站注册
- 使用WebClient自动填写并提交ASP.NET页面表单的源代码
- struts2 表单对象没有自动实例化
- 表单自动获得焦点、鼠标经过选择表单
- 金和oa:自定义表单自动获取流程审批意见
- HTML form表单自动填写自动提交
- 前端-text输入框是下拉菜单切能自动匹配
- jQuery框架学习第十一天:实战jQuery表单验证及jQuery自动完成提示插件
- 自动生成参数表单
- selenium如何解决IE自动填充表单问题
- JS仿百度搜索自动提示框匹配查询功能
- spring通过xml方式配置AOP时,提示错误信息:匹配的通配符是严格的,但是对于元素'aop:aspectj- 自动代理”。