1、C# MVC學習之NVelocity基本使用


小白一個,剛剛開始學,大神不要笑話。。。。。。

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM