-1

私は Apache Velocity Template を使用して、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

これはあなたが探しているものかもしれません...

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