关于FreeMarker+struts2输出xml文件

发布于 2021-11-14 11:12:00 字数 1310 浏览 687 评论 1

小弟最近在做一个项目,需要用到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直接作为数据模型,那我的模板应该怎么编写呢?怎么把输出的字符流转为为对象呢?

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

贱贱哒 2021-11-18 04:26:57

Expression
method.
invoke
is
undefined
on
line
15,
column
35
in
com/
geq/
util/
xml/
template/
gridXml.
ftl.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文