利用反射机制来获取表单请求值以及对象赋值
来源:互联网 发布:淘宝怎么样投诉店家 编辑:程序博客网 时间:2024/06/18 05:39
反射上一次博客中就已经详细介绍了反射机制,如果大家有兴趣的话可以看一看 点击打开链接
反射就是java语言的一种内置的机制,通过这个机制可以动态的 创建对象、读写属性、调用方法
一、首先你要先导入两个jar包
commons-beanutils-1.8.0.jar
commons-logging.jar
二、定义自己的工具类package framework.util;
import java.text.SimpleDateFormat;
import java.util.Map;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.beanutils.Converter;
import org.apache.commons.beanutils.converters.ByteConverter;
import org.apache.commons.beanutils.converters.DoubleConverter;
import org.apache.commons.beanutils.converters.FloatConverter;
import org.apache.commons.beanutils.converters.IntegerConverter;
import org.apache.commons.beanutils.converters.LongConverter;
import org.apache.commons.beanutils.converters.ShortConverter;
/**
* 工具类(第三方插件)
* @author king
*
*/
public class MyBeanUtils {
static{//用static修饰的代码块表示静态代码块,当Java虚拟机(JVM)加载类时,就会执行该代码块
//找到相对应的转换器,默认值为null
FloatConverter floatConverter=new FloatConverter(null);
IntegerConverter integerConverter=new IntegerConverter();
ByteConverter byteConverter=new ByteConverter(null);
ShortConverter shortConverter=new ShortConverter(null);
DoubleConverter doubleConverter=new DoubleConverter(null);
LongConverter longConverter=new LongConverter(null);
//通过反射机制,进行转换
ConvertUtils.register(floatConverter, Float.class);
ConvertUtils.register(integerConverter, Integer.class);
ConvertUtils.register(byteConverter, Byte.class);
ConvertUtils.register(shortConverter, Short.class);
ConvertUtils.register(doubleConverter, Double.class);
ConvertUtils.register(longConverter, Long.class);
//处理Java.sql.Date的格式和空
ConvertUtils.register(new Converter() {
private SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
public Object convert(Class arg0, Object value) {
// TODO Auto-generated method stub
try {
if(null==value||"".equals(value.toString().trim())){
return null;
}
String s=value.toString().trim();
java.util.Date d=sdf.parse(s);
java.sql.Date dd=new java.sql.Date(d.getTime());
return dd;
} catch (Exception e) {
// TODO Auto-generated catch block
throw new RuntimeException("日期格式错误,正确的格式为:yyyy-MM-dd");
}
}
} ,java.sql.Date.class);
}
//无参的构造方法
private MyBeanUtils(){
}
public static void populate(Object bean,Map properties){
try {
BeanUtils.populate(bean,properties);
} catch (Exception e) {
e.printStackTrace();
}
}
}
三、在servlet类的dopost里面获取所有的参数一个map集合
然后调用上面那个工具类的方法就可以了
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//实例化对象
User u=new User();
//获取所有的请求参数(表单)
Map<String,String[]> map = request.getParameterMap();
//调用方法
MyBeanUtils.populate(u, map);
}
小结:大家有没有发现减少了很多代码量的操作,这里采用的就是反射机制的原理
---------------------------------------敬请期待下一节哦!
- 利用反射机制来获取表单请求值以及对象赋值
- 利用反射机制来获取表单请求值以及对象赋值(使用了第三方插件)
- java使用反射机制进行对象间数据赋值获取
- 利用反射机制动态获取对象属性名称及数据类型
- 利用反射机制动态获取对象属性名称及数据类型
- android中利用Java反射机制获取系统相机对象
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- 利用反射实现两个对象赋值
- 同类型对象利用反射自动赋值
- Java反射机制操作对象赋值
- Linux 与 Windows 的设备驱动模型对比:架构、API 和开发环境比较
- S3C2440时钟系统
- C 中typedef 函数指针的使用
- Windows socket之IOCP实例----IOCP开发驾照理论考试系统
- 知识相关总结
- 利用反射机制来获取表单请求值以及对象赋值
- mysql 日期格式映射 mybatis时String 注意转化
- datatables报Requested unknown...错误
- POJ2752_通过kmpNext数组的性质求一个字符串的公共同前后缀
- laravel手动创建分页
- Ribbon通过代码自定义负载均衡规则
- plsql字体修改
- HTML5之常用行级标签及用法
- 在windows中开启Hyper-V与android studio模拟器冲突问题