小白一個,剛剛開始學,大神不要笑話。。。。。。
NVelocity是一個很容易上手的框架,從它開始學習,可以循序漸進
首先,創建空web應用程序,新建一般處理程序 Login2.ashx
然后,引入NVelocity,
c
創建Html 頁面login.htm,實現登錄框架
NVelocity語法是$開頭
<html> <head></head> <body> <strong><font color='green'>登錄</font></strong> <form action='Login2.ashx'> <input type='text' name='username' value='$username'/> <input type='password' name='password' value='$password' /> <input type='submit' value='登錄'/> </form> <p>$msg</p> </body> </html>
編寫Login2.ashx.cs頁面,使用NVelocity處理請求
public class Login2 : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/html"; string username = context.Request["username"]; string password = context.Request["password"]; if (string.IsNullOrEmpty(username) && string.IsNullOrEmpty(password)) { VelocityEngine vltEngine = new VelocityEngine(); vltEngine.SetProperty(RuntimeConstants.RESOURCE_LOADER, "file"); vltEngine.SetProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, System.Web.Hosting.HostingEnvironment.MapPath("~/templates"));//模板文件所在的文件夾 vltEngine.Init(); VelocityContext vltContext = new VelocityContext(); vltContext.Put("username", "");//設置參數,在模板中可以通過$data來引用 vltContext.Put("password", ""); vltContext.Put("msg", ""); Template vltTemplate = vltEngine.GetTemplate("login.htm"); System.IO.StringWriter vltWriter = new System.IO.StringWriter(); vltTemplate.Merge(vltContext, vltWriter); string html = vltWriter.GetStringBuilder().ToString(); context.Response.Write(html); } else { if (username == "admin" && password == "123") { context.Response.Write("登錄成功"); } else { VelocityEngine vltEngine = new VelocityEngine(); vltEngine.SetProperty(RuntimeConstants.RESOURCE_LOADER, "file"); vltEngine.SetProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, System.Web.Hosting.HostingEnvironment.MapPath("~/templates"));//模板文件所在的文件夾 vltEngine.Init(); VelocityContext vltContext = new VelocityContext(); vltContext.Put("username", username);//設置參數,在模板中可以通過$data來引用 vltContext.Put("password", password); vltContext.Put("msg", "用戶名或者密碼錯誤"); Template vltTemplate = vltEngine.GetTemplate("login.htm"); System.IO.StringWriter vltWriter = new System.IO.StringWriter(); vltTemplate.Merge(vltContext, vltWriter); string html = vltWriter.GetStringBuilder().ToString(); context.Response.Write(html); } } } public bool IsReusable { get { return false; } }
NVelocity的強大之處不僅僅這些,它還可以對 對象的屬性進行賦值,看下面的例子
<html><head></head><body> $p.Name <p>我的老爹是 $p.Father.Name,他的年齡是$p.Father.Age </p> </body></html>
后台處理程序:
context.Response.ContentType = "text/html"; Person person = new Person(); person.Name = "張三"; person.Age = 30; Person dad = new Person(); dad.Name = "張三的爹"; dad.Age = 60; person.Father = dad; VelocityEngine vltEngine = new VelocityEngine(); vltEngine.SetProperty(RuntimeConstants.RESOURCE_LOADER, "file"); vltEngine.SetProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, System.Web.Hosting.HostingEnvironment.MapPath("~/templates"));//模板文件所在的文件夾 vltEngine.Init(); VelocityContext vltContext = new VelocityContext(); vltContext.Put("p", person);//設置參數,在模板中可以通過$data來引用 Template vltTemplate = vltEngine.GetTemplate("test.htm"); System.IO.StringWriter vltWriter = new System.IO.StringWriter(); vltTemplate.Merge(vltContext, vltWriter); string html = vltWriter.GetStringBuilder().ToString(); context.Response.Write(html);
代碼下載地址:http://download.csdn.net/detail/murongqingsi/9156661
NVelocity下載地址:http://download.csdn.net/detail/murongqingsi/9156623