Velocityテンプレートエンジン繰り返しforeach の使い方一例

2010/01/22 18:37Update
TAGS: Velocity | テンプレートエンジン | Apache | サンプル | foreach

Velocityテンプレートエンジンの繰り返しforeach の使い方サンプルです。

テンプレートエンジンVelocityについて


Apache Velocity - 高機能なJavaベースのテンプレートエンジン
VelocityテンプレートエンジンのResourceNotFoundExceptionについて
テンプレートエンジンApache Velocityを使おう - VelocityでDAOの自動生成ツールを作成

Velocity繰り返しforeach 例



■Velocityテンプレート定義例
rule.vm
#VelocityContextテンプレート例
#ファイル名:rule.vm
$rootNode

#foreach($node in $nodeList)
#$node.name
$node.name=$node.value
#end

■Javaコード
List <String>nodeList = new ArrayList<String>();

//データ
for (int i=0; i<3; i++) {
    Map <String, String>map = new HashMap<String, String>();
    map.put("name", "name" + i);
    map.put("value", "value" + i);
    
    nodeList.add(map);
}

String rootNode = "テスト";

//データ設定
VelocityContext context = new VelocityContext();

context.put("rootNode", rootNode);
context.put("nodeList", nodeList);


//テンプレート読み込み
Template template = Velocity.getTemplate("rule.vm", "UTF-8");

//ファイルに書き出す(c:/my.properties)
FileWriter fw = new FileWriter(new File("c:/",  "my.properties"));

//データとマージする
template.merge(context, fw);

//ファイルストリーム クローズ
fw.flush();
fw.close();


実行すると、c:/my.propertiesファイルが生成されます。

■c:/my.propertiesの中身
#VelocityContextテンプレート例
#ファイル名:rule.vm
テスト

#name0
name0=value0
#name1
name1=value1
#name2
name2=value2

有关作者
Syboos.jp編集長システム設計や開発、保守運営などを行ってます。オープンソース技術に興味があります。

Sponsored Link


Comments