request传参转化为javaBean工具类
来源:互联网 发布:上海音乐学院网络报名 编辑:程序博客网 时间:2024/06/11 03:16
1.java文件
/** * <p>Title:request转化为javaBean工具类</p> * <p>Description:request转化为javaBean工具类</p> */import java.lang.reflect.Field;import java.lang.reflect.Method;import java.sql.Timestamp;import java.text.SimpleDateFormat;import java.util.Enumeration;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import javax.servlet.http.HttpServletRequest;public class RequestBeanUtils {final static String PREFFIX = "set";/** * * 把request中的值赋给Object对象,也就是把request中的parameter和object属性对应的时候 * 把object中的属性赋值,使用标准的bean * @param request * @param target 目标bean * @return 封装之后的bean * @throws Exception */@SuppressWarnings("unchecked")public static Object getValuesByRequest(HttpServletRequest request,Object target) throws Exception {Enumeration<String> keys = request.getParameterNames();Map<String, String> valueMap = getValuesMap(request, keys);getObject(valueMap, target, null,null);return target;}/** * * @see 把request中的值赋给Object对象,也就是把request中的parameter和object属性对应的时候 * 把object中的属性赋值,使用标准的bean * @param request * @param target 目标bean * @param unSetProperties 不复制的对象 * @return 封装之后的bean * @throws Exception */@SuppressWarnings("unchecked")public static Object getValuesByRequest(HttpServletRequest request,Object object, String[] unSetProperties)throws Exception {Enumeration<String> keys = request.getParameterNames();Map<String, String> valueMap = getValuesMap(request, keys);getObject(valueMap, object, unSetProperties,null);return object;}/** * * @see 把request中的值赋给Object对象,也就是把request中的parameter和object属性对应的时候 * 把object中的属性赋值,使用标准的bean * @param request * @param target 目标bean * @param unSetProperties 不复制的对象 * @param proertiesMap 不一致属性匹配 * @return 封装之后的bean * @throws Exception */@SuppressWarnings("unchecked")public static Object getValuesByRequest(HttpServletRequest request,Object object, String[] unSetProperties,Map<String,String> proertiesMap)throws Exception {Enumeration<String> keys = request.getParameterNames();Map<String, String> valueMap = getValuesMap(request, keys);getObject(valueMap, object, unSetProperties,proertiesMap);return object;}/** * 获取request参数及值map(键值对) * @param request * @param keys * @return * @throws Exception */protected static Map<String, String> getValuesMap(HttpServletRequest request, Enumeration<String> keys) throws Exception {if (keys == null)return null;Map<String, String> value = new HashMap<String, String>();while (keys.hasMoreElements()) {String element = keys.nextElement();value.put(element, request.getParameter(element));}return value;}/** * 转化javaBean * @param valueMap request获取的键值 * @param object javaBean对象 * @param unSetProperties 不复制的对象 * @param proertiesMap 不一致属性匹配 * @return * @throws Exception */protected static Object getObject(Map<String, String> valueMap,Object object, String[] unSetProperties,Map<String,String> proertiesMap) throws Exception {List<String> unSet = null;if (unSetProperties != null)unSet=java.util.Arrays.asList(unSetProperties);if (valueMap == null)return null;for (Iterator<String> iter=valueMap.keySet().iterator();iter.hasNext();) {String key = iter.next();if (unSet != null && unSet.contains(key)) {continue;}String methodValue = valueMap.get(key);if(proertiesMap!=null && proertiesMap.containsKey(key)){key=proertiesMap.get(key);}if (methodValue != null)setValue(object, key, methodValue);}return object;}/** * 给javaBean中的属性字段赋值 * @param obj javaBean对象 * @param name bean属性 * @param value 值 * @throws Exception */protected static void setValue(Object obj, String name, String value)throws Exception {Field field = null;try {field = obj.getClass().getDeclaredField(name);} catch (Exception e) {return;}if (field == null) {return;}Method method = obj.getClass().getDeclaredMethod(getSetMethodName(name), field.getType());String type = field.getGenericType().toString();if(type.equals("int") || type.equals("class java.lang.Integer")){if(value!=null && !value.equals("")){method.invoke(obj, Integer.parseInt(value));}}else if(type.equals("double") || type.equals("class java.lang.Double")){if(value!=null && !value.equals("")){method.invoke(obj, Double.valueOf(value));}}else if(type.equals("float") || type.equals("class java.lang.Float")){if(value!=null && !value.equals("")){method.invoke(obj, Float.valueOf(value));}}else if(type.equals("char") || type.equals("class java.lang.Character")){if(value!=null && !value.equals("")){method.invoke(obj, Character.valueOf(value.charAt(0)));}}else if(type.equals("class java.util.Date")){if(value!=null && !value.equals("")){String format = value.length()==10?"yyyy-MM-dd":"yyyy-MM-dd HH:mm:ss";SimpleDateFormat sdf = new SimpleDateFormat(format);method.invoke(obj, sdf.parse(value));} }else if(type.equals("class java.sql.Timestamp")){if(value!=null && !value.equals("")){String format = value.length()==10?"yyyy-MM-dd":"yyyy-MM-dd HH:mm:ss";SimpleDateFormat sdf = new SimpleDateFormat(format);method.invoke(obj, new Timestamp(sdf.parse(value).getTime()));}}else{method.invoke(obj, value);}}/** * bean属性转化为set方法 * @param methodName * @return */protected static String getSetMethodName(String methodName) {String first = methodName.substring(0, 1);String suffex = methodName.substring(1);return (PREFFIX + first.toUpperCase() + suffex).toString();}}
2.调用方法
User user = new User();RequestBeanUtils.getValuesByRequest(request,user);
- request传参转化为javaBean工具类
- Json转化为C#类工具
- 读取.sql文件,转化为javabean
- Map 对象转化为一个 JavaBean
- Map对象通过反射转化为JavaBean对象转化
- request 对象转换为指定对象工具类
- request 对象转换为指定对象工具类
- json、javaBean 互相转化 的工具 —— json-lib
- java代码将地址转化为坐标的工具类
- java 汉字转化为拼音工具类(未测试)
- 【C# 工具类】将DataTable转化为 List集合/对象
- java 汉字转化为拼音工具类
- 关于数字转化为大写的工具类
- 利用反射机制 实现 javabean 转化为 map
- 将一个 JavaBean 对象转化为一个 Map
- 将一个 JavaBean 对象转化为一个 Map
- Json:Javabean、list、map转化为json案例
- 将request参数转化为bean的 万能类 (使用了泛型和反射)
- 委托模式( delegate)
- JSON 数据格式
- 程序中如何处理超时问题
- 数据库备份(支持分卷b/r)--- mysql back/restore, can split (php script)
- c++ new用法
- request传参转化为javaBean工具类
- C++ Plus 使用 Visual C++ 2008 功能包加强 Windows 应用程序
- android内存溢出的解决方法总结
- iOS 后台程序误区 - 结束后台程序iPhone速度真的会更快 ...
- 一个简单的php变量记录/读取类
- Decodes JScript/VBscript data encoded
- js 中类型的判断与isNaN() 函数的用法
- 自由选择.Py脚本自动执行设定次数并打印CMD输出
- Qt Linguist 的使用方式