在日常的项目中,经常会遇到各层对象之间相互进行值传递的过程,如在数据据持久层有一持久类Entp,它有一个字段为
createDate,为时间类型,相应的在Struts的ActionForm中也有一个字段为createDate,不过应为String类型,这时在二者之
间就会经常碰到将日期型转化为字符串类型以及将字符类型转化为日期类型的情况,利用Dozer可以很方便地为你做到,下面
给出简单示例:
一个XML配置文件:dozerBeanMapping.xml
xml 代码
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE mappings PUBLIC "-//DOZER//DTD MAPPINGS//EN"
- "http://dozer.sourceforge.net/dtd/dozerbeanmapping.dtd">
- <mappings>
-
- <configuration>
- <stop-on-errors>true</stop-on-errors>
- <date-format>yyyy-MM-dd</date-format>
- <wildcard>true</wildcard>
- </configuration>
-
- </mappings>
为了方便调用,项目中我自己写的一个工厂类:DozerBeanMapperFactory.java
java 代码
- import java.util.ArrayList;
- import java.util.List;
-
- import org.apache.commons.logging.Log;
- import org.apache.commons.logging.LogFactory;
-
- import net.sf.dozer.util.mapping.DozerBeanMapper;
-
-
-
-
-
-
-
- public class DozerBeanMapperFactory {
-
- private static final Log log = LogFactory.getLog(DozerBeanMapperFactory.class);
- private static DozerBeanMapper mapp = null;;
-
- public static DozerBeanMapper getMapper(){
- if(mapp==null){
- mapp = new DozerBeanMapper();
- List mappingFiles = new ArrayList();
- mappingFiles.add("dozerBeanMapping.xml");
- mapp.setMappingFiles(mappingFiles);
- log.debug("Dozer init successfully!");
- }
- return mapp;
- }
- }
DozerBeanMapper mapper = DozerBeanMapperFactory.getMapper();
mapper.map(gf,point);//将gf => point
在一个Web应用中,我们一般将dozerBeanMapping.xml配置文件放在WEB-INF\classes根目录下。
当然Dozer的还有很多强大的功能,在此不一一罗列,有兴趣的朋友可以到http://dozer.sourceforge.net/ 得到更多信息。