4

我可以在 freemarker 模板中使用 smooks 显示传入的 XML 文件的内容,但我想添加本地系统的当前日期和时间来标识我的程序的执行。

<ftl:freemarker applyOnElement="CreditCard">
    <ftl:template><!--        <BalanceInquiryRequest>
        <TransactionId>${BalanceInquiryRequest.TransactionId}</<TransactionId>
        <ConfigurationId>${BalanceInquiryRequest.ConfigurationId}</ConfigurationId>
        <CardNumberr>${.vars["GiftCard"].CardNumber}</CardNumberr>
        <ExpirationDate>${.vars["GiftCard"].ExpirationDate}</ExpirationDate>
        <SecurityCode>${.vars["GiftCard"].SecurityCode}</SecurityCode>
       *****************************
Here I want to display the current Date & time 
    </BalanceInquiryRequest>
    --></ftl:template>
</ftl:freemarker>

你能告诉我如何在 XML 中添加当前日期和时间,而无需在传入的 XML 中输入。

4

5 回答 5

8

使用.now,他们前段时间介绍过,不需要java

于 2013-06-13T15:02:26.527 回答
3

这里似乎有答案。简短的回答是,您需要通过 Java。

于 2010-05-25T18:22:54.213 回答
0

您可以在 Smooks 配置文件中编写一个简短的 groovy 脚本,以使用今天的日期填充 beancontext 中的 bean。然后 freemarker 脚本可以使用该 bean 中的值。

编辑:您可以在此处阅读有关 Groovy 和 Smooks 的更多信息:http ://www.smooks.org/mediawiki/index.php?title=V1.3:Smooks_v1.3_User_Guide#Groovy_Scripting

您可能想使用http://www.milyn.org/javadoc/v1.2/smooks-cartridges/javabean/org/milyn/javabean/repository/BeanRepository.html中的方法并执行类似的操作:

  <g:groovy executeOnElement="xxx">
    <g:script>
    <!--
    addBean("date", new Date());
    -->
    </g:script>
</g:groovy>

然后,您应该能够访问 freemarker 中的“日期”bean。

于 2011-01-18T17:44:42.847 回答
0

你不能这样做,因为像 Freemarker 这样的 XML 是模板引擎,而不是对象。您必须将其传递给 java 对象new Date();

于 2010-08-18T19:03:20.557 回答
0

您可以在没有 .now 的情况下执行此操作,并且您不必传入新日期。我现在不得不使用旧的freemarker,而是这样做了..

<#assign dateNow = Static["java.util.Calendar"].getInstance().getTime()?datetime />
于 2017-12-13T12:03:22.933 回答