Chunkは、無料のオープンソースのJava用テンプレートエンジンです。チャンクはFreemarkerやVelocityと似ていますが、より直感的な構文です。 (SRC /テーマ/ my_template.chtmlで、クラスパス内の場所、例えば)
my_template.chtml
<html>
<head>
</head>
<body>
<table>
<tbody>
<thead>
Blah Blah table Header--Constant Part
</thead>
<tr>
some text-constant part
</tr>
{!---Main Customization Part--}
{% loop in $list as $row %}
<tr>
{% loop in $row as $cell %}
{% if ($cell.color == "blue") %}
<td class="{$class_a}">{$cell.text}</td>
{% else %}
<td class="{$class_b}">{$cell.text}</td>
{% endif %}
{% endloop %}
</tr>
{% endloop %}
</tbody>
</table>
</body>
</html>
:
チャンクのネスト可能な "ループ" とタグは、この種のものは非常に簡単に作る "場合"このテンプレートで作業するための
サンプルJava:
import com.x5.template.Theme;
import com.x5.template.Chunk;
...
Theme theme = new Theme();
Chunk html = theme.makeChunk("my_template");
html.set("class_a", "blue_cell");
html.set("class_b", "plain_cell");
String row1 = "[[color,text],[blue,moe],[red,curly],[orange,larry]]";
String row2 = "[[color,text],[red,hat],[black,dog],[blue,bottle]]";
String[] list = new String[]{row1,row2};
html.set("list", list);
out = getOutputWriter();
html.render(out); // or System.out.print(html.toString())
out.flush();
out.close();
私はループに優しいデータを作成するために、インラインテーブル(チャンクコンビニエンス形式)を使用していますが、任意のオブジェクトtの配列またはリストを使用することができますhatはcom.x5.util.DataCapsuleを実装し、Chunkはテンプレートをレンダリングする前にデータをオブジェクトから正しくコピーします。
最終的な出力:
<html>
<head>
</head>
<body>
<table>
<tbody>
<thead>
Blah Blah table Header--Constant Part
</thead>
<tr>
some text-constant part
</tr>
<tr>
<td class="blue_cell">moe</td>
<td class="plain_cell">curly</td>
<td class="plain_cell">larry</td>
</tr>
<tr>
<td class="plain_cell">hat</td>
<td class="plain_cell">dog</td>
<td class="blue_cell">bottle</td>
</tr>
</tbody>
</table>
</body>
</html>
「ガガワ」をチェックしましたか? http://code.google.com/p/gagawa/ –
シンプルなテンプレートエンジンを使用できます。このエントリを確認してください:http://stackoverflow.com/questions/3793880/lightweight-template-engine-in-java – mdakin
* "出力を下回りたいです。" *出力が不正です。 [検証サービス](http://validator.w3.org/)を使用してチェックします。 –