在平常的项目中,常常会遇到各层对象之间相互进行值传递的过程,如在数据据持久层有一持久类Entp,它有一个字段为java
createDate,为时间类型,相应的在Struts的ActionForm中也有一个字段为createDate,不过应为String类型,这时在两者之apache
间就会常常碰到将日期型转化为字符串类型以及将字符类型转化为日期类型的状况,利用Dozer能够很方便地为你作到,下面app
给出简单示例:spa
一个XML配置文件:dozerBeanMapping.xml.net
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.javadebug
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;
-
- /**
- * 在Bean间复制数据
- * 更多信息请访问 http://dozer.sourceforge.net/
- * @author lixy 2006-9-13 12:13:00
- *
- */
- 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();code
mapper.map(gf,point);//将gf => pointorm
在一个Web应用中,咱们通常将dozerBeanMapping.xml配置文件放在WEB-INF\classes根目录下。xml
固然Dozer的还有不少强大的功能,在此不一一罗列,有兴趣的朋友能够到http://dozer.sourceforge.net/ 获得更多信息。对象