djangoでいうところの@register.filterのように、NVelocityに自作のフィルタを組み込んで使うには、
適当なクラスを
#region NVelocity filter class class nvFilterTools{ public static string escape(string str){ return System.Web.HttpUtility.HtmlEncode(str); } public static string comma(long n){ return string.Format("{0:N0}", n); } public static long divk(long n){ if (n < 1024){ if (n != 0){ n = 1; } }else{ n /= 1024; } return n; } } #endregion
Putして
Velocity.Init(); VelocityContext vct = new VelocityContext(); vct.Put("filter", new nvFilterTools());
テンプレート中で使う
<tr><td class="name"><a href="./$filter.escape($file.Name)">$filter.escape($file.Name)</a></td><td class="size">$filter.comma($filter.divk($file.Length)) KB</td><td class="updated">$file.LastWriteTime</td></tr>