java代码中 param_java中将param的值自动存到bean中

importjava.lang.reflect.Method;importjava.util.Date;importjavax.servlet.http.HttpServletRequest;importorg.apache.commons.lang3.ArrayUtils;importorg.apache.commons.lang3.StringUtils;importorg.apache.commons.lang3.math.NumberUtils;importorg.apache.commons.lang3.time.DateUtils;/**Servlet业务中实体工具

*@authorLiuDing

* 2014-2-16-下午08:10:06*/

public classServletBeanTools {/**自动匹配参数赋值到实体bean中

*@authorLiuDing

* 2014-2-16 下午10:23:37

*@parambean

*@paramrequest*/

public static voidpopulate(Object bean, HttpServletRequest request){

Class clazz =bean.getClass();

Method ms[]=clazz.getDeclaredMethods();

String mname;

String field;

String fieldType;

String value;for(Method m : ms){

mname=m.getName();if(!mname.startsWith("set")||ArrayUtils.isEmpty(m.getParameterTypes())){continue;

}try{

field= mname.toLowerCase().charAt(3) + mname.substring(4, mname.length());

value=request.getParameter(field);if(StringUtils.isEmpty(value)){continue;

}

fieldType= m.getParameterTypes()[0].getName();//以下可以确认value为String类型

if(String.class.getName().equals(fieldType)){

m.invoke(bean, (String)value);

}else if(Integer.class.getName().equals(fieldType) &&NumberUtils.isDigits((String)value)){

m.invoke(bean, Integer.valueOf((String)value));

}else if(Short.class.getName().equals(fieldType) &&NumberUtils.isDigits((String)value)){

m.invoke(bean, Short.valueOf((String)value));

}else if(Float.class.getName().equals(fieldType) &&NumberUtils.isNumber((String)value)){

m.invoke(bean, Float.valueOf((String)value));

}else if(Double.class.getName().equals(fieldType) &&NumberUtils.isNumber((String)value)){

m.invoke(bean, Double.valueOf((String)value));

}else if(Date.class.getName().equals(fieldType)){

m.invoke(bean, DateUtils.parseDate((String)value,"yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss"));

}else{

m.invoke(bean, value);

}

}catch(Exception e){

e.printStackTrace();continue;

}

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值