Archive for the ‘NVelocity’ Category

  1. 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!