2010-02-03 4 views
4

Я могу отображать содержимое моего входящего XML-файла, используя smooks в шаблоне freemarker, но я хочу добавить текущую дату & время моей локальной системы, чтобы определить выполнение моей программы.Как отображать текущую дату и время в разделе шаблонов Freemarker?

<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.

ответ

3

Существует, кажется, ответ here. Короткий ответ, вы должны пройти на Java.

+9

Это не так больше ... 2.3.17 представила специальную переменную '.now'. – ddekany

0

Вы не можете сделать это, так как XML, как Freemarker, являются двигателями шаблонов, а не объектами. Вы должны передать его в объект java как new Date();

0

Вы можете написать короткий строгий скрипт в конфигурационном файле Smooks для заполнения компонента beancontext с сегодняшней датой. Тогда скрипт freemarker может использовать значение из этого компонента.

Edit: Вы можете прочитать больше о 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.

6

использование .now, они ввели его некоторое время назад, нет необходимости в Java

0

Вы можете сделать это без .Теперь, и вы не должны переходить в новую дату. мне приходится работать со старым FreeMarker в данный момент и сделал это вместо того, чтобы ..

<#assign dateNow = Static["java.util.Calendar"].getInstance().getTime()?datetime /> 
Смежные вопросы