import java.io.Serializable;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.beanutils.Converter;
import org.apache.commons.lang.StringUtils;
public class RequestUtils implements Serializable {
private static final long serialVersionUID = 1L;
/**
* request 参数转成 javabean 对象
*
* @param request
* @param clazz
* @return
*/
public static <T> T getParamBean(HttpServletRequest request, Class<T> clazz)
{
try
{
T bean = clazz.newInstance();
Map<?, ?> map = request.getParameterMap();
ConvertUtils.register(new Converter() {
@SuppressWarnings("unchecked")
@Override
public Object convert(@SuppressWarnings("rawtypes")
Class type, Object value)
{
if (value == null)
{
return null;
}
String str = ((String) value).trim();
if (str.trim().equals(""))
{
return null;
}
Date d = null;
SimpleDateFormat format = null;
if (str.length() > 10)
{
if (str.indexOf("-") > 0)
{
format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
}
else
{
format = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
}
}
else
{
if (str.indexOf("-") > 0)
{
format = new SimpleDateFormat("yyyy-MM-dd");
}
else
{
format = new SimpleDateFormat("yyyy/MM/dd");
}
}
try
{
d = format.parse(str);
}
catch (ParseException e)
{
throw new RuntimeException(e);
}
return d;
}
}, Date.class);
/*****************************************************************/
Iterator<?> entries = map.entrySet().iterator();
while (entries.hasNext())
{
Map.Entry<?, ?> entry = (Map.Entry<?, ?>) entries.next();
String name = (String) entry.getKey();
if (name == null)
{
continue;
}
Object object = entry.getValue();
if (object.getClass().isArray())
{
object = StringUtils.join((Object[]) object, ",");
}
BeanUtils.setProperty(bean, name, object);
}
/**********************************************************************/
return bean;
}
catch (Exception e)
{
throw new RuntimeException(e);
}
}
}
request 对象转换为指定对象工具类
最新推荐文章于 2023-05-06 10:06:44 发布