tokuhirom's Blog

avans での Freemarker の取り扱いを変えた。

既存コードには関係ない話ですが、今朝リリースした 1.5.3 のスケルトンジェネレータでの変更についてです。

avans ではいままで avans-freemarker を利用していましたが、これが将来的に Deprecate されて、新しい方法が採用されます。

今までのスケルトンでは Freemarker 関連のコードがゴチャゴチャしがちでしたが、これらを src/main/java/${pkg}/view/ 以下に配置するように変更。view 関連のコードをこのあたりにまとめるようになっています。

のようなクラスが生成されるようになっています。

この変更により、以下のようにすんなりとコントローラコードを記述することが可能になっています。またビュー関連のコードが一箇所にまとまって管理しやすくあんっております。

public class RootController extends BaseController {
    @GET("/")
    public WebResponse index() throws IOException, TemplateException {
        return this.freemarker("index.html.ftl")
                .param("name", "John<>")
                .render();
    }
}

以前のバージョンでは ImmutableMap を使ったりしていてダルい感じだったけど、イカス感じになった!!

また、Helper クラスが最初から用意されるようになっています。これは Amon2 で言うところの ViewFunctions にあたるものです。 これを定義しておけば、テンプレートから呼び出したい関数を好き勝手に呼べるようになっています。便利。

まあそういう感じですのでよろしくお願いします。