1
回答
关于FreeMarker+struts2输出xml文件
极速云服务器,低至1.04元/天>>>   

小弟最近在做一个项目,需要用到FreeMarker做接口的xml报文。原来的时候接口报文对于xml的解析,要么用的是DTD,要么就用的是Xstream。但是目前需要用FreeMarker来输出xml文件然后调用接口,最后别人返回的xml文件也需要通过FreeMarker输出。

目前有两个问题:

1、模板应该怎么写呢?严格按照定义的接口,自定义模板呢?还是有直接Struts2直接生成的xml模板,例如如下模板(该模板是否是通用的xml模板,任何一个数据模型都可以跟这个模板结合然后输出???):

//src/template/gridXml.ftl   
  
<?xml version="1.0" encoding="utf-8"?>  
<list>  
  <Total>  
    <results>${results}</results>  
  </Total>  
  <#list items as item>  
  <#assign recordName=item.class.name.replaceAll(".*\\.","")>  
    <${recordName}>  
    <#assign methods=item.class.declaredMethods>  
    <#list methods as method>  
        <#assign isGetMethod=method.name.startsWith("get")>  
        <#if isGetMethod = true>  
        <#assign methodmethodName=method.name.replaceAll("get","").toLowerCase()>  
            <${methodName}>  
                ${method.invoke(item,null)}   
            </${methodName}>  
        </#if>  
    </#list>  
    </${recordName}>  
  </#list>  
</list>  

以上是我在网上搜罗各种资料的时候看到的,有点懵···

2、如果调用完毕接口,对于接口返回的xml直接作为数据模型,那我的模板应该怎么编写呢?怎么把输出的字符流转为为对象呢?

请高手赐教,不甚感激···

举报
顶部