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