2009年12月9日水曜日

GAE/JでVelocity

スズキです。

久しぶりのブログです。(怠けてました...)

結局メールのテンプレートはVelocity使っちゃうので、
だったら、Webページのテンプレートも同じがいいなー、と思い、
GAE/JでVelocityを使うために、いろいろ調査してみました。
(最終的にはT2と連動するとこまでもってきたいです)

まずは最小構成ということで、下記のjarを用意します。

--------【WEB-INF/lib/】-------
commons-collections-3.2.jar
commons-digester-1.8.jar
commons-lang-2.2.jar
commons-logging-1.1.jar
velocity-1.5.jar
velocity-tools-view-1.4.jar
--------

今回は、VelocityViewを使うので、下記のようにweb.xmlを記述します。

--------【WEB-INF/web.xml】-------
...
<servlet>
  <servlet-name>velocity</servlet-name>
  <servlet-class>org.apache.velocity.tools.view.servlet.VelocityViewServlet</servlet-class>
  <init-param>
    <param-name>org.apache.velocity.properties</param-name>
    <param-value>/WEB-INF/velocity.properties</param-value>
  </init-param>
</servlet>
<servlet-mapping>
  <servlet-name>velocity</servlet-name>
  <url-pattern>*.vm</url-pattern>
</servlet-mapping>
...
--------

velocity.propertiesが必要になるので、下記のように用意します。

--------【WEB-INF/velocity.properties】-------
input.encoding=UTF-8
output.encoding=UTF-8
resource.loader = file
file.resource.loader.class=org.apache.velocity.runtime.resource.loader.FileResourceLoader
file.resource.loader.path=WEB-INF/vm/page
--------

すると、"http://localhost:8080/index.vm"が、
"WEB-INF/vm/page/index.vm"をテンプレートとしたページとして出力されます。

VelocityLayoutServletも、確認しておくか...
http://velocity.apache.org/tools/releases/1.4/view/layoutservlet.html

--------
http://www.suz-lab.com

0 コメント: