在《改进ASP语法打造更高效的模板语言》一篇中,我介绍了DTL作为ASP扩展语法的模板语言所带来的优势之一:静态标签。在这一篇中,我将带你领略DTL的又一强势:模板标签。
让我们来看一个例子,假如我想输出以下内容:



注意空格哦!这里的动态部分就是从1到5的这部分。模板要怎样写呢?可以这样:












































呵呵,不错,就是这个样子,这就是我想要的。嗯,<%# templateName #%>就是所谓的模板标签,它定义了一个动态模板,<%=templateName=%>就是模板引用,将被引用的模板结果输出到引用位置上。
这下清晰多了,而且模板可以被多个地方引用,达到一定程度上的可重用性。这套机制酷似XSLT中的template标签,不过没有模板参数等的定义。也许你会问:“那我可以传参数给模板标签吗?”可以,不过准确的说不是你手动传,是自动传的。换句话说,模板引用是一个Closure,模板标签中的内容在运行时会自动获得所有模板引用当前的上下文。比如如下示例:































好了,这篇的内容就介绍完了,不知道我所描述的这两大DTL语法有没有引起你的足够兴趣,再次说明一下,如果你已经感兴趣了的话,可以自己下载试一下哦。在《改进ASP语法打造更高效的模板语言》一篇中有相关链接。
截止今日,又有一些小bug被fix掉了,所以如果你想让你的体验更愉快的话,请随时获取最新的源代码自行编译。