可変な個数のテンプレートのインポート
正式なやり方かどうか知らないが、可変個数のインクルードができた。
昨日のソースをちょっと書き換えてやる。
// WebContextを作成し、テンプレートの処理を実行 WebContext ctx = new WebContext(request, request.getServletContext(), request.getLocale()); List<Page> pages = new ArrayList<Page>(); pages.add(new Page("content")); pages.add(new Page("content")); pages.add(new Page("content")); pages.add(new Page("content")); ctx.setVariable("pages", pages); String result = engine.process("layout", ctx);
テンプレート名を持つPageというビーンクラスを作ってリストに入れ、そのリストをWebコンテキストに入れてやる。
テンプレートはこんな感じ。
<div th:each="page: ${pages}"> <div th:include="${page.template} :: content"></div> </div>
th:eachでリストを回して、Pageクラスのテンプレート名をインクルード対象に指定する。
でけた!ヽ(´ ▽ ` )ノ
さりげなく文字化けも直しておいた(response.setCharacterEncoding("UTF-8")しただけだけど)
何か簡単に目的が達成できてしまったw
折角できたから、今の開発に適用できないかしら。