-1

我正在使用 Apache Velocity 模板使用在 Java 服务的基于 SOA 的事件中设置的参数生成电子邮件正文。

在 java 中,我们为我们触发的 SOA 事件设置参数。参数设置如下:

createSOAEventParam(uow, soaEvent.getEventId(), "startedOn", startedOn);
createSOAEventParam(uow, soaEvent.getEventId(), "lastRunDate", new DateTime().toString());

我们还设置了每个子进程中关联的文件名和文件大小,如下所示:

**for(String subProcess : subProcesses){
            File file = new File(GOLD_DIR + subProcess + ".dat");
            if(file!=null && file.exists()){
                createSOAEventParam(uow, soaEvent.getEventId(), file.getName(), String.valueOf(file.length()));
            }
        }**

现在我的任务是在应用程序资源中检索这些参数,它有一个电子邮件正文条目,我使用 VTL 打印出这些参数。像这样的东西:

label.Interfaces.FailureMessage.body=
<html>[label.LastSubmittedDate]: #if($startedOn != "") $startedOn  #end <br/> 
[label.FileName]: (iteration logic here)  [label.FileSize]: (iteration logic here)<br/> 

我需要遍历所有最后带有“.dat”的参数,因为它们代表文件名,并且 - 这是java代码中的事件名,并且还获得文件大小,即事件名的值。如何在 VTL 中执行此迭代?

4

1 回答 1

0

This may be what you're looking for...

#foreach( $event in $eventList )
    #if( $event.name.endsWith(".dat") )
        ## do whatever
    #end
#end
于 2013-06-28T11:16:14.160 回答