smooks使用freemarker模版

smooks-config.xml

 1 <?xml version="1.0"?>
 2 <smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
 3                       xmlns:core="http://www.milyn.org/xsd/smooks/smooks-core-1.3.xsd"
 4                       xmlns:ftl="http://www.milyn.org/xsd/smooks/freemarker-1.1.xsd">
 5 
 6     <core:filterSettings type="SAX" />
 7 
 8     <ftl:freemarker applyOnElement="$document">
 9         <ftl:template>/DIP.ftl</ftl:template>
10     </ftl:freemarker>
11 
12 </smooks-resource-list>

测试类

 1 import java.io.File;
 2 import java.io.FileWriter;
 3 import java.util.Arrays;
 4 import java.util.List;
 5 
 6 import javax.xml.transform.Result;
 7 import javax.xml.transform.stream.StreamResult;
 8 
 9 import org.milyn.Smooks;
10 import org.milyn.container.ExecutionContext;
11 import org.milyn.payload.JavaSource;
12 import org.milyn.payload.StringSource;
13 
14 import com.powere2e.model.StartD;
15 import com.powere2e.model.StartH;
16 import com.powere2e.model.StartS;
17 
18 public class Test1 {
19 
20     public static void main(String[] args) {
21         StartH startH=new StartH("");
22 
23         try {
24             Smooks smooks = new Smooks("smooks-config.xml");
25             ExecutionContext executionContext = smooks.createExecutionContext();
26 //            FileWriter writer = new FileWriter(new File("d:cocococo22.xml"));
27             executionContext.setContentEncoding("GBK");
28             executionContext.getBeanContext().addBean("H", startH);
29             smooks.filterSource(executionContext, new JavaSource(new StringSource("document")), new Result[] { new StreamResult(System.out)});
30         } catch (Exception e) {
31             e.printStackTrace();
32         }
33 
34     }
35 
36 }

下面的xml文件是配置ftl后生成文件,和上面的是不对应的

 1 <?xml version="1.0"?>
 2 <smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
 3                       xmlns:core="http://www.milyn.org/xsd/smooks/smooks-core-1.3.xsd"
 4                       xmlns:file="http://www.milyn.org/xsd/smooks/file-routing-1.2.xsd"
 5                       xmlns:ftl="http://www.milyn.org/xsd/smooks/freemarker-1.1.xsd">
 6 
 7     <core:filterSettings type="SAX" />
 8 
 9     <ftl:freemarker applyOnElement="$document">
10         <ftl:template>/DiPlatformUserInvoices.ftl</ftl:template>
11         <ftl:use>
12             <ftl:outputTo outputStreamResource="datasetSplitStream" />
13         </ftl:use>
14     </ftl:freemarker>
15     
16     <file:outputStream resourceName="datasetSplitStream" openOnElement="/"><!-- ftl:use Resource -->
17         <file:fileNamePattern>DI.xml</file:fileNamePattern><!-- 生成文件名 -->
18         <file:destinationDirectoryPattern>target</file:destinationDirectoryPattern><!-- 生成文件存放路径 -->
19         <!-- <file:listFileNamePattern>DI.lst</file:listFileNamePattern> --><!-- 生成一个lst文件 -->
20 
21         <file:highWaterMark mark="2"/><!-- xml节点数 -->
22     </file:outputStream>
23 </smooks-resource-list>

 

posted on 2012-08-23 14:08  雷、  阅读(410)  评论(0)    收藏  举报

导航