在平常的項目中,常常會遇到各層對象之間相互進行值傳遞的過程,如在數據據持久層有一持久類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/ 獲得更多信息。對象