首页 > 代码库 > NVelocity模板引擎在项目中的应用

NVelocity模板引擎在项目中的应用

 NVelocity是一个基于.NET的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由.NET代码定义的对象。至于其他的一些别的NVelocity的的解释、和一些用法这里就不在提及。

        具体的使用方法:

        1,定义Velocity辅助类(VelocityHelper.cs)

                  提供下载  当然,这个辅助类需要添加NVelocity.dll的引用。

        2,aspx页面和Template的结构说明

                  这个其实是需要根据个人喜好来定!为了更好的能看清自己的结构,我是这样来放置的!如图:

                  

      Template放置所有 *.vm模板

      其中:Browse文件夹放置前台页面的模板,Manage文件夹放置后台页面模板。需要注意的是这连个文件夹下的Default文件夹只是一个区分前台或者后台模板的一个标识,在调用时来区分。

      Manage文件夹放置管理的*.aspx页面

      Manage文件夹下的页面例如LinkTypeEdit.aspx所调用的模板就为Template/Defalut/LinkTypeEdit.vm。名称依次对应,当然,对应不是必须的。

      根目录放置前台*.aspx页面

      前台页面调用的模板为Template/Browse/Defalut/下的模板,和管理页面一样也是名称相互对应。

     3,调用、赋值方法

     在项目中加入VelocityHelper.cs这个辅助类。

     我们以Defalut.aspx为例来大概讲解,首先我们先编辑Template/Browse/Defalut/Default.vm,这是我们首页的模板。

     

     可以看到我们在两个地方使用了模板的变量,分别是$PageTitle,$hello。这样们肯定就需要在Default.aspx中利用引擎模板来做为变量赋值、显示模板等操作。

     下面就让我们来处理一下Defalut.aspx页面,因为显示完全是使用模板,所以Default.aspx页面时不需要有任何的东西,只留下@ Page 的一行就可以。后台代码在Page_Load事件中,我们就要作出相应的操作了!

protected void Page_Load(object sender, EventArgs e){   

     //创建辅助类   

     Luz.Web.Util.VelocityHelper vh = new Luz.Web.Util.VelocityHelper();   

     //模板位置   

     string templatePath = "/Template/Browse/Defalut/";   

     //通过模版位置初始化引擎   

     vh.Init(templatePath);   

     //为变量赋值,第一个参数是变量的名称,也就是你在模版也中写的变量的名称,注意没有"$";第二个参数是值,Object类型。   

     vh.PutSet("PageTitle", "Hi I am Title");   

    vh.PutSet("hello", "Hello NVoleCity");   

     //显示模板   

      vh.Display("Default.vm");   

 }  

 protected void Page_Load(object sender, EventArgs e){      //创建辅助类      Luz.Web.Util.VelocityHelper vh = new Luz.Web.Util.VelocityHelper();      //模板位置      string templatePath = "/Template/Browse/Defalut/";              //通过模版位置初始化引擎      vh.Init(templatePath);              //为变量赋值,第一个参数是变量的名称,也就是你在模版也中写的变量的名称,注意没有"$";第二个参数是值,Object类型。      vh.PutSet("PageTitle", "Hi I am Title");     vh.PutSet("hello", "Hello NVoleCity");              //显示模板       vh.Display("Default.vm");  }

     这样,运行一下看看,是不是模板已经显示出来,而且$PageTitle和$hello已经被替换成了我们在Page_Load事件中为它赋的值。当然,赋值的时候你可以是任何类型,包括List泛型(模板中使用#foreach遍历)等。

NVelocity模板引擎在项目中的应用