fmpp代码生成po(一)

来源:互联网 发布:邮箱反查域名 编辑:程序博客网 时间:2024/05/17 01:21
fmpp简介就不介绍了,官方地址是http://fmpp.sourceforge.net/ 
首先去官方下它的压缩包,解压到c:\fmpp 
这个压缩包里面包括了它的很多examples以及docs,大家可以去看那些研究研究。 

接下来这个例子是通过xml来生成对应的po。 

我们在E盘新建一个名叫xml的文件夹。它的下面是src文件夹,我们需要的这个xml放置在src\data下面,为po.xml,代码如下;: 
Java代码  收藏代码
  1. <po className="Test">  
  2.   <column javatype="private" type="String" name="userName" >  
  3.   </column>  
  4.   <column javatype="private" type="Integer" name="password">    
  5.   </column>  
  6. </po>  


然后在src目录下新建po.java,它只是一个类似于规则文件。代码如下: 
Java代码  收藏代码
  1. public class ${doc.po.@className}{  
  2.   
  3. <#list doc.po.column as co>  
  4.   
  5. ${co.@javatype} ${co.@type} ${co.@name} ;  
  6.   
  7. ${co.@javatypevoid set${co.@name?cap_first}(${co.@type} ${co.@name}) {  
  8.     this.${co.@name}=${co.@name};  
  9. }  
  10.  ${co.@javatype} ${co.@type} get${co.@name?cap_first}() {  
  11.     return this.${co.@name};  
  12. }   
  13.  </#list>  
  14.   
  15. }  

这里的?cap_first为将首字母大写

现在我们需要一个配置文件来读取po.xml按照po.java的格式生成特定的po文件. 
这个配置文件取名为config.fmpp.在xml目录下,与src目录平级。 
它的内容如下:
Java代码  收藏代码
  1. sourceRoot: src  
  2. outputRoot: out  
  3. logFile: log.fmpp  
  4. data: {doc: xml(data/po.xml)}  


这部分说明了要读取的doc为po.xml,源文件在src下面,输出文件在out文件下面。 

好了 ,现在我们执行命令输出: 
命令为:E:\xml>C:\fmpp\bin\fmpp 
执行结果为: 
Note: Using the config.fmpp in the working directory. 
- Executing: data\po.xml 
- Executing: po.java 

*** DONE *** 

2 executed + 0 rendered + 0 copied = 2 successfully processed 
0 failed, 0 warning(s) 
Time elapsed: 0.203 seconds 

现在 我们来看out文件夹下面的po.java,out和这个po.java是自动生成的。 
po.java类代码如下: 
Java代码  收藏代码
  1. public class Test{  
  2.   
  3.   
  4. private String userName ;  
  5.   
  6. private void setUserName(String userName) {  
  7.     this.userName=userName;  
  8. }  
  9.  private String getUserName() {  
  10.     return this.userName;  
  11. }   
  12.   
  13. private Integer password ;  
  14.   
  15. private void setPassword(Integer password) {  
  16.     this.password=password;  
  17. }  
  18.  private Integer getPassword() {  
  19.     return this.password;  
  20. }   
  21.   
  22. }  


好了!先就介绍到这!