Archive for the ‘Velocity’ Category
-
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!
-
Hello, NVelocity World!
Posted on 2月 12th, 2012 by cx20
NVelocity
NVelocity は Java 用のテンプレートエンジン「Velocity」の .NET 実装である。
ソースコード(テンプレート)
<html> <head> <title>Hello, World!</title> </head> <body> <p>Hello, $message World!</p> </body> </html>
ソースコード(C#)
using System; using System.IO; using System.Diagnostics; using Commons.Collections; using NVelocity; using NVelocity.App; using NVelocity.Context; public partial class _Hello : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { VelocityEngine velocity = new VelocityEngine(); VelocityContext context = new VelocityContext(); StringWriter sw = new StringWriter(); try { String properties = Server.MapPath("nvelocity.properties"); velocity.Init(properties); Template template = velocity.GetTemplate("hello.vm"); context.Put("message", "NVelocity"); template.Merge(context, sw); Response.Write(sw.GetStringBuilder().ToString()); } catch( Exception ex ) { Debug.WriteLine("Exception: " + ex.Message); } } }
実行方法
ディレクトリ構成 /Hello … 公開用フォルダ /Hello.aspx /Hello.aspx.cs /nvelocity.properties … NVelocity 設定ファイル /Web.config … ASP.NET 構成ファイル /bin /NVelocity.dll /templates … テンプレート配置場所 /hello.vm 1. テンプレートの配置 templates 2. nvelocity.properties の記載
resource.loader = file file.resource.loader.class = NVelocity.Runtime.Resource.Loader.FileResourceLoader file.resource.loader.path = C:\home\edu\vs2010\vc10#\Hello\templates file.resource.loader.cache = true file.resource.loader.modificationCheckInterval = 2
3. ブラウザで表示 http://localhost/Hello/Hello.aspx
実行結果
Hello, NVelocity World!