Velocityテンプレートエンジン繰り返しforeach の使い方一例
2010/01/22 18:37Update
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
#ファイル名: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
#ファイル名:rule.vm
テスト
#name0
name0=value0
#name1
name1=value1
#name2
name2=value2
Sponsored Link
- Relative Articles
- Jakarta Commons NETによるFTP処理(FTPClient) - (2009/01/28 19:40)
- DTDファイル処理 - DTDParser - Java DTD パーサー - (2009/01/30 17:48)
- テンプレートエンジンfreemarkerでRSSを出力してみる - (2009/02/06 13:59)
- Apache Commons EmailによるEメール送信 - (2009/02/06 17:51)
- Apache Commons Digesterを使おう - サンプルから学ぶXML文書の読み込み - (2009/02/09 17:09)
- テンプレートエンジンApache Velocityを使おう - VelocityでDAOの自動生成ツールを作成 - (2009/02/10 11:12)
- Jakarta Commons によるHTTP処理(HttpClient) - (2009/02/17 15:14)
- Apache MINAを使ってみよう - Apache MINAで簡易なサーバ作成 - (2009/03/05 17:59)
- 全文検索システムApache Luceneを使ってみる - (2009/04/11 13:45)
- PSD-parser - JavaでPSDファイルを抽出するためのライブラリ - (2009/04/21 00:09)