Slim3でFreemarkerを使ってみる
Slim3で、久しぶりにJSPを触っているけれど、やっぱりFreemarkerのほうが
使い勝手がよく感じるため、変更してみることにしました。
以下からFreemarkerをダウンロードする
http://freemarker.sourceforge.net/freemarkerdownload.html
※ここに上がっているFreemarkerにはバグがあるらしく、
assignを使うとエラーになってしまった。
以下のgaefreemarker.zipファイル内に入っているfreemarker-gae-pre2.jarを使うことで、正常に動作した。
http://code.google.com/p/googleappengine/issues/detail?id=3157
slim3は、以下のSVNからプロジェクトとしてチェックアウトする。
http://slim3.googlecode.com/svn/trunk/slim3-blank
プロジェクト内のweb.xmlに以下の記述を加える。
<servlet> <servlet-name>freemarker</servlet-name> <servlet-class>freemarker.ext.servlet.FreemarkerServlet</servlet-class> <init-param> <param-name>TemplatePath</param-name> <param-value>/</param-value> </init-param> <init-param> <param-name>NoCache</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>ContentType</param-name> <param-value>text/html; charset=UTF-8</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>freemarker</servlet-name> <url-pattern>*.ftl</url-pattern> </servlet-mapping> <security-constraint> <web-resource-collection> <url-pattern>*.ftl</url-pattern> </web-resource-collection> <auth-constraint></auth-constraint> </security-constraint>
あとは、Controller内でreturn forward("index.ftl");のように、
ftlファイル名を指定すれば動きます。
Eclipse用のFreemarker PluginのインストールURLは以下
http://download.jboss.org/jbosstools/updates/development/