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中,所有标签均以“${”开头,“}”结尾,在大多数情况下,大括号可以省略,如${Model.Title}可以简写为$Model.Title(以下示例中均使用简写模式)!目前最常用标签有以下六种:
一、变量标签(VariableTag):
作用:直接输出一个对象,如果要获取对象属性,请使用“.”
说明:变量名只能使用字母与数字的组合,并且只能以字母开头!
示例:$Title 或者 $User.Name
二、方法标签(FunctaionTag):
作用:执行后台自定义方法
说明:多个参数用英文逗号分开,字符串必须使用“"”包含起来,变量无须加$
示例:
后台代码:
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)
作用:可进行逻辑判断
说明:支持“圆括号”与“与(&&)”,“或(||)”运算!注意:如果“与(&&)”,“或(||)”运算符前后是数学表达式,应使用圆括号括起来,目前不支持非运算!
示例:
$if((3+5>2)||((4*4)/2 !=35))
判断结果:成功
$else
判断结果:失败
$end
4.简单的JNTemplate使用示例:
新建一个WEB应用项目,在网站目录下新建templets文件夹,并创建一个html文件,
保存为“hello.html”,然后在网站根目录新建一个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字样了