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!

Tags:

Categories: Java, Servlet, Velocity

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

WP-SpamFree by Pole Position Marketing