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> |
<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;
}
} |
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 の記載 |
ディレクトリ構成
/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 |
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
<?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> |
<?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 |
6. ブラウザで表示
http://localhost:8080/hello/servlet/Hello
実行結果
Hello, Velocity World!
Tags: Velocity
Categories: Java, Servlet, Velocity