可変な個数のテンプレートのインポート

正式なやり方かどうか知らないが、可変個数のインクルードができた。


昨日のソースをちょっと書き換えてやる。

    // 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
折角できたから、今の開発に適用できないかしら。