avans での Freemarker の取り扱いを変えた。
既存コードには関係ない話ですが、今朝リリースした 1.5.3 のスケルトンジェネレータでの変更についてです。
avans ではいままで avans-freemarker を利用していましたが、これが将来的に Deprecate されて、新しい方法が採用されます。
今までのスケルトンでは Freemarker 関連のコードがゴチャゴチャしがちでしたが、これらを src/main/java/${pkg}/view/
以下に配置するように変更。view 関連のコードをこのあたりにまとめるようになっています。
- me.geso.sample.view.FreemarkerView
- me.geso.sample.view.FreemarkerViewFactory
- me.geso.sample.view.Helper
- me.geso.sample.view.HtmlTemplateLoader
のようなクラスが生成されるようになっています。
この変更により、以下のようにすんなりとコントローラコードを記述することが可能になっています。またビュー関連のコードが一箇所にまとまって管理しやすくあんっております。
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 にあたるものです。 これを定義しておけば、テンプレートから呼び出したい関数を好き勝手に呼べるようになっています。便利。
まあそういう感じですのでよろしくお願いします。