request自动赋值到model

request自动赋值到实体类

public BaseModel getModel(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());
field = mname.substring( 3 , mname.length());
value = request.getParameter(field);
if (StringUtils. isEmpty (value)){
continue ;
}
fieldType = m.getParameterTypes()[ 0 ].getName();
//以下判断value类型
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 (Long. class .getName().equals(fieldType) && NumberUtils. isDigits ((String)value)){
m.invoke(bean, Long. 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 ;
}
}
return (BaseModel)bean;
}
BaseModel 为实体类,该方法的参数可以为Object bean也可以为直接把实体类传进来,返回值也可以为Object

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值