HttpServletRequest中直接获取实体对象
2016-11-18 10:26
381 查看
组件功能:
从HttpServletRequest中获取数据并填充到具体的实体对象注:
该方法目前应该无法获取json数据进行填充核心方法:
coverDomainFromRequest/** * 从request中获取实体对象 * @param e 用于装载数据的空实体对象 * @param request 当前的请求对象 * @param <E> 实体对象类型 * @throws IllegalAccessException 数据转换装载异常时抛出 */ private <E extends BaseDomain> void coverDomainFromRequest(E e,HttpServletRequest request) throws IllegalAccessException { //获取实体类型 Class<?> clasz = e.getClass(); //遍历类型成员变量并填充数据 for (Field f: clasz.getDeclaredFields()) { //从request中获取数据 String value = request.getParameter(f.getName()); //数据判空 if (value == null){ continue; } //非空情况下进行数据填充 f.setAccessible(true); f.set(e, ConvertUtil.castFromObject(value, f.getType())); } }
使用到的方法:
ConvertUtil.castFromObjectpublic static Object castFromObject(Object obj, Class<?> destType){ if (obj == null){ return null; } else if (obj.getClass().equals(destType)){ return obj; } Converter converter = converters.get(destType); if (converter != null){ return converter.convert(obj); } String typeName = obj.getClass().getCanonicalName(); if (typeName.equals("java.lang.String")){ return castFromString((String)obj, destType); } else if (typeName.equals("boolean") || typeName.equals("java.lang.Boolean")){ return castFromString(Boolean.toString((Boolean)obj), destType); } else if (typeName.equals("int") || typeName.equals("java.lang.Integer")){ return< bf1f /span> castFromString(Integer.toString((Integer)obj), destType); } else if (typeName.equals("short") || typeName.equals("java.lang.Short")){ return castFromString(Short.toString((Short)obj), destType); } else if (typeName.equals("long") || typeName.equals("java.lang.Long")){ return castFromString(Long.toString((Long)obj), destType); } else if (typeName.equals("double") || typeName.equals("java.lang.Double")){ return castFromString(Double.toString((Double)obj), destType); } else if (typeName.equals("float") || typeName.equals("java.lang.Float")){ return castFromString(Float.toString((Float)obj), destType); } else if (typeName.equals("java.math.BigInteger")){ return castFromString(((java.math.BigInteger)obj).toString(), destType); } else if (typeName.equals("java.math.BigDecimal")){ return castFromString(((java.math.BigDecimal)obj).toString(), destType); } else if (typeName.equals("java.sql.Date")){ return castFromString(((java.sql.Date)obj).toString(), destType); } else if (typeName.equals("java.sql.Time")){ return castFromString(((java.sql.Time)obj).toString(), destType); } else if (typeName.equals("java.sql.Timestamp")){ return castFromString(((java.sql.Timestamp)obj).toString(), destType); } else{ return obj; } }
相关文章推荐
- 通过RequestContextHolder直接获取HttpServletRequest对象
- servlet中用HttpServletRequest对象获取一些路径和信息
- action中获取HttpServletRequest对象
- 由于浏览器版本造成的HttpServlet获取request请求对象中含中文乱码问题
- httpServletRequest对象获取请求参数
- 后台通过HttpServletRequest对象获取页面表单传递过来的参数的方式
- springmvc 从本地线程获取HttpServletRequest , HttpServletResponse 对象
- 获取HttpServletRequest / HttpSession / ServletContext / HttpServletResponse对象 .
- java-springmvc4-几种获取 HttpServletRequest 对象的方式
- JSF(Java Server Face) 框架中如何获取传统的HttpSession或HttpServletRequest对象
- Spring获取HttpServletRequest对象
- 使用拦截器获取HttpServletResponse 对象,HttpServletRequest对象
- springmvc获取HttpServletRequest对象
- 基于jersey的pojo对象如何获取HttpServletRequest对象
- 通过HttpservletRequest对象获取客户端的真实IP地址
- springmvc在普通类中获取HttpServletRequest对象
- Action获取传统域对象(HttpServletRequest、HttpSession、ServletContext)的三种
- 通过HttpServletRequest对象获取信息
- springMvc源码学习之:利用springMVC随时随地获取HttpServletRequest等对象
- httpServletRequest对象获取请求消息头