极念网欢迎您!
JNTemplate模板引擎快速入门
作者:来源:发布时间:2016/9/28 20:39:14查看数:59887

    JNTemplate模板引擎快速入门

    1.什么是JNTemplate
JNTemplate是一款.NET平台的轻量级解释型模板引擎,基于Apache Licene 2.0 协议免费开源,在遵守守协议的情况下,甚至可以二次开发后做为商业产品发布与销售

    2.源代码获取
JNTemplate源代码目前托管于GITHUB, 我们可以在<a href="https://github.com/jiniannet/jntemplate"https://github.com/jiniannet/jntemplate 获得最新版的源码!
也可以通过nuget获取我们的发行版本。

    3.认识标签及标签类型
标签相当于页面中的占位符,用以输出后台变量!在JNTemplate中,所有标签均以&ldquo;${&rdquo;开头,&ldquo;}&rdquo;结尾,在大多数情况下,大括号可以省略,如${Model.Title}可以简写为$Model.Title(以下示例中均使用简写模式)!目前最常用标签有以下六种:
 一、变量标签(VariableTag):
  作用:直接输出一个对象,如果要获取对象属性,请使用&ldquo;.&rdquo;
  说明:变量名只能使用字母与数字的组合,并且只能以字母开头!
  示例:$Title 或者 $User.Name

     二、方法标签(FunctaionTag):
  作用:执行后台自定义方法
  说明:多个参数用英文逗号分开,字符串必须使用&ldquo;"&rdquo;包含起来,变量无须加$
  示例:
  后台代码:
      public class Command
      {
          public string Get(string str, int num)
          {
               return "您输入的字符串是:"+str+" 数字是:"+num.ToString();
          }
      }

                 Template template = new Template();
  template.Set("cmd", new Command());

      标签:$cmd.Get("hello world",356)
  

     三、迭代标签(ForeachTag):
  作用:遍历某个对象
  说明:ForeachTag支持无限级嵌套
  示例:
  

    <ul>
  $foreach(item in list)
    <li> $item.title</li>
  $end
</ul>

     

     四、变量赋值(SetTag):
  作用:创建或者改变某个变量的值
  说明:注意,在迭代标签中创建的变量,在离开循环后将失效,等于后可以直接接字符串,数字,或者方法,变量等!
  示例:$set(n=85)

     五、LoadTag与IncludeTag
  作用:将其它模板的内容加载到当前模板
  说明:LoadTag会对加载的内容进行解析,而IncludeTag不会!注意,如果未配置模板当前目录与模板搜寻目录,则可能无法正常加载该模板。
  示例:$load("header.html") 或 include("footer.html")

     六、逻辑判断(IfTag)
  作用:可进行逻辑判断
  说明:支持&ldquo;圆括号&rdquo;与&ldquo;与(&&)&rdquo;,&ldquo;或(||)&rdquo;运算!注意:如果&ldquo;与(&&)&rdquo;,&ldquo;或(||)&rdquo;运算符前后是数学表达式,应使用圆括号括起来,目前不支持非运算!
  示例:
  $if((3+5>2)||((4*4)/2 !=35))
  判断结果:成功
  $else
  判断结果:失败
  $end

   
4.简单的JNTemplate使用示例:
 新建一个WEB应用项目,在网站目录下新建templets文件夹,并创建一个html文件,
 

     

    <!DOCTYPE html>
    <html>
    <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
    <title>JNTemplate 快速入门</title>
    </head>
    <body>
    JNTemplate 快速入门:
    $welcome<br />
    </body>
    </html>

     保存为&ldquo;hello.html&rdquo;,然后在网站根目录新建一个hello.aspx页面,除第一行 外,其余多余的HTML全部清除,转到后台代码,在protected void Page_Load(object sender, EventArgs e)中敲下如下代码:
            string path =Server.MapPath("~/templets/hello.html");
            string document = System.IO.File.ReadAllText(path);
            Template template = (Template)Engine.CreateTemplate(document);
            template.Set("welcome", "hello world");

            template.Context.CurrentPath = "D:\\templets\\"; //指定当前模板目录
            template.Render(Response.Output);

     保存按F5运行就可以看到JNTemplate 快速入门:hello world字样了