|
SyntacticSugarOfXMLLite
基于XML 解析器的模板的语法亮点
前端程序员在程序结构完美上的追求普遍很低,使用XML模板引擎有利于程序员养成严谨的编码风格,以及追求代码结构完美的习惯。
选项太多,往往使人茫然,增加错误;合理的约束对编码效率的提高有他有利的一面。
XML 本身的良好严谨的结构要求,使得输出结构的也更容易保持正确的结构,减少大量代码结构上的低级错误,减少因个别程序员的粗心而导致的XSS漏洞。
例如: <input
onclick ="${action.click}"
ondblclick="${action.dblclick}" ><input
#if(${action.click!=null})
onclick="${html.encode(action.click)}"
#end
#if(${action.dblclick!=null})
ondblclick="${html.encode(action.dblclick)}"
#end><input
<c:if test="${action.click!=null}">
onclick= "<c:out
value="${action.click}"
escapeXml="true" />"
</c:if>
<c:if test="${action.dblclick!=null}">
onclick= "<c:out
value="${action.dblclick}"
escapeXml="true" />"
</c:if>
>更多实例 XML规范的语法,对于代码的正确格式化非常有利,而且,也不必担心源代码中过多的语法空白而导致输出内容的增加,因为xml语言知道标记语言的语法,可以自动优化无效的语法空白。
基于xpath的片段选取,可以将密切关联的若干模版碎片集中存放,并反复利用。 如,我们可以吧Webwork的自定义标记定义在一个完整的表单对象中。
XMLLiteSiteMesh 功能,编译期的SiteMesh。轻松实现高校的页面装饰功能(布局管理)。 细节见:http://code.google.com/p/lite/wiki/XMLLiteSiteMesh
引入XML语法描述文件后,标准的通用编辑器可以轻松的支持XML_Lite自己的语法提示 ,语法检查 ,代码高亮 、格式化 。 XML Lite 的其他语法亮点
相比于传统的模板引擎,XMLLite最大的优点就是他的设计简单。 类似JSP EL的表达式,类似JSTL的控制标签,各自独立,结构清晰,概念简单。 前后端模板统一,不用学习多种模板语法;模板语法简单,组合灵活直观,减少记忆元素。有利于新手入门。 Lite默认的表达式实现是JSEL,一个按照JS运算规则设计的简单的表达式运算引擎。这也是Lite之所以能在前后端公用同一语法的基础。 而XML Lite的逻辑控制指令,在解脱了表达式解析负担之后,设计也得到了极大的简化。 因为表达式和逻辑控制的分离,使得任何一个模块都可以独立运作,抛开模板,表达式解析功能可以用于其他系统,抛开默认的JSEL,我们可以采用其他任何一种自己喜欢的表达式运算规则。
JSEL,以及Lite的数据结构,只是一种简单类型和列表类型的组合,是JSON的一个子集,自己可直接被JSEL自身功能实现数据装载解析。
受CommonTemplate启发,在做表格输出的时候,经常碰见这样一种情况,当没有任何结果的时候,显示一个没有任何记录的提示,类似这种问题,你就直接用else吧。
受CommonTemplate启发,for作为关键字,用来表示循环状态,不让废变量空间,意思又简单明了。
相比于其他模板引擎动辄上M几百k,Lite加上解析器也不过百k,小巧精悍。 目前已支持Java,JS,Python。 |
Sign in to add a comment