Posts Tagged ‘Velocity’
-
Hello, Velocity World!
Posted on 2月 19th, 2012 by cx20
Velocity
Velocity は Java 用のテンプレートエンジンである。英語で「速さ」を意味する。
テンプレートファイルは VTL(Velocity Template Language)と呼ばれるテンプレート言語が用いられる。ソースコード(テンプレート)
<html> <head> <title>Hello, World!</title> </head> <body> <p>Hello, $message World!</p> </body> </html>
ソースコード(Java)
import org.apache.velocity.Template; import org.apache.velocity.servlet.VelocityServlet; import org.apache.velocity.app.Velocity; import org.apache.velocity.context.Context; import javax.servlet.http.*; public class Hello extends VelocityServlet { public Template handleRequest( HttpServletRequest request, HttpServletResponse response, Context context ) { Template template = null; try { context.put("message", "Velocity"); template = Velocity.getTemplate("hello.vm"); } catch( Exception e ) { System.err.println("Exception: " + e.getMessage()); } return template; } }
実行方法
ディレクトリ構成 /hello … 公開用フォルダ /WEB-INF … アプリケーション設定ファイル配置場所 /classes … クラスファイル配置場所 /templates … テンプレート配置場所 1. モジュールのコンパイル javac -cp $CATALINA_HOME/lib/velocity-1.7.jar:$CATALINA_HOME/lib/servlet-api.jar:. Hello.java 2. モジュールの配置 WEB-INF/classes 3. テンプレートの配置 WEB-INF/templates 4. WEB-INF/velocity.properties の記載
resource.loader = file file.resource.loader.class = org.apache.velocity.runtime.resource.loader.FileResourceLoader file.resource.loader.path = /usr/local/tomcat/current/webapps/hello/WEB-INF/templates file.resource.loader.cache = true file.resource.loader.modificationCheckInterval = 2
5. WEB-INF/web.xml の記載
<?xml version="1.0"?> <web-app> <servlet> <servlet-name>Hello</servlet-name> <servlet-class>Hello</servlet-class> <init-param> <param-name>properties</param-name> <param-value>/WEB-INF/velocity.properties</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>Hello</servlet-name> <url-pattern>/servlet/Hello</url-pattern> </servlet-mapping> </web-app>
6. ブラウザで表示 http://localhost:8080/hello/servlet/Hello
実行結果
Hello, Velocity World!