关于FreeMarker+struts2输出xml文件
小弟最近在做一个项目,需要用到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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Expression
method.
invoke
is
undefined
on
line
15,
column
35
in
com/
geq/
util/
xml/
template/
gridXml.
ftl.