用ServletContextListener监听器注册类型转换器
来源:互联网 发布:ubuntu出错 编辑:程序博客网 时间:2024/06/03 07:46
利用BeanUtils框架将formbean中数据整合到实体中时,因为formbean中数据类型都是String类型,所以往往需要将String类型转化为其他类型再整合到实体中,这时就需要注册一些全局的类型转化器
package cn.lfd.web.listener;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;import org.apache.commons.beanutils.ConvertUtils;import org.apache.commons.beanutils.Converter;import cn.lfd.golobals.Gender;import cn.lfd.golobals.Preference;/* * 利用全ServletContextListener监听器注册类型转换器 */public class WebInitListener implements ServletContextListener {@Overridepublic void contextDestroyed(ServletContextEvent arg0) {// TODO Auto-generated method stub}////web应用一启动就会调用这个方法@Overridepublic void contextInitialized(ServletContextEvent arg0) {//注册一个把String类型转化为Date类型的转换器ConvertUtils.register(new Converter() {@Overridepublic Object convert(Class type, Object value) {if(value==null) {//若值为空不需要转换,直接返回nullreturn null;}if(value instanceof String) {String str = (String) value;if(str.trim().equals("")) {return null;}SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");try {Date d = sdf.parse(str);return d;} catch (ParseException e) {throw new RuntimeException("输入的类型不是字符串");}}return null;}}, Date.class);//注册一个把String类型转化为Gender枚举类型的转换器ConvertUtils.register(new Converter() {@Overridepublic Object convert(Class type, Object value) {if(value==null) {return null;}String str = (String) value;Gender g = Gender.valueOf(str.toUpperCase());return g;}}, Gender.class);//注册一个把String类型转化为Double类型的转换器ConvertUtils.register(new Converter() {@Overridepublic Object convert(Class type, Object value) {if(value==null) {return null;}return Double.parseDouble((String)value);}}, double.class);//注册一个把String类型转化为Preference[]枚举数组类型的转换器ConvertUtils.register(new Converter() {@Overridepublic Object convert(Class type, Object value) {if(value==null) {return null;}String[] pres = (String[]) value;Preference[] pre = new Preference[pres.length];for(int i = 0;i<pres.length;i++) {pre[i++] = Preference.valueOf(pres[i].toUpperCase());}return pre;}}, Preference[].class);}}
然后在web.xml文件中配置一下就使用BeanUtils.copyProperties(user, bean);轻松的把formbean数据搞到实体中
0 0
- 用ServletContextListener监听器注册类型转换器
- ServletContextListener监听器
- ServletContextListener监听器
- struts2注册局部类型转换器
- 监听器ServletContextListener小记
- 监听器ServletContextListener小记
- 使用ServletContextListener监听器
- Spring ServletContextListener监听器
- 使用ServletContextListener监听器
- web上下文监听器ServletContextListener
- servletContextListener监听器调用问题
- ServletContextListener监听器解析
- Listener监听器(ServletContextListener)
- ServletContextListener,HttpSessionListener,ServletRequestListener监听器
- 使用ServletContextListener监听器
- 监听器 ServletContextListener使用详解
- 自定义类型转换器(转换器的注册方法)
- 注册webwork/struts2的类型转换器
- 图片字节转换 文件格式校验
- 个人初做小游戏RunRunMagic(四)障碍物和碰撞检测
- Java线程理解(1)
- 【leetcode】 1. Two Sum
- 润乾集算报表实现混合数据源计算
- 用ServletContextListener监听器注册类型转换器
- 欢迎使用CSDN-markdown编辑器
- loopback地址的那些事儿
- mysql中delete的语法别名问题
- 百度面试题
- HDU 3001 状压(三进制)
- 数据结构的基本概念
- 信息资源管理之信息化
- Makfile笔记