`
javatar
  • 浏览: 1680334 次
  • 性别: Icon_minigender_1
  • 来自: 杭州699号
社区版块
存档分类
最新评论

CommonTemplate增加HTML标签版语法外套

    博客分类:
  • HTTL
阅读更多
CommonTemplate(http://www.commontemplate.org)已提供了注释版和属性版语法外套.
注释版语法外套:
<html>
    <body>
        <!--$if{users != null && users.size &amp;gt; 0}-->
        <table border="1">
            <!--$for{user : users}-->
            <tr>
                <td><!--$output{for.index + 1}-->1<!--$end--></td>
                <td><!--$output{user.name}-->james<!--$end--></td>
                <td><!--$output{user.coins}-->2.00<!--$end--></td>
            </tr>
            <!--$end-->
        </table>
        <!--$end-->
    </body>
</html>

属性版语法外套:
<html>
    <body>
        <table ct:if="users != null && users.size &amp;gt; 0" border="1">
            <tr ct:for="user : users">
                <td><span ct:output="for.index + 1">1</span></td>
                <td><span ct:output="user.name">james</span></td>
                <td><span ct:output="user.coins">2.00</span></td>
            </tr>
        </table>
    </body>
</html>

当模板应用于XML/HTML时, 可能需要保持完整的DOM模型结构,
属性版语法外套也可以做到, 但转换比较耗时, 且存在不规则HTML语法兼容问题.
桂林提议加入XML/HTML标签版语法外套, 使用如:
<html>
    <body>
    	<ct:if param="users != null && users.size &amp;gt; 0">
	        <table border="1">
	        	<ct:for param="user : users">
	            <tr>
	                <td><ct:out param="for.index + 1"/></td>
	                <td><ct:out param="user.name"/></td>
	                <td><ct:out param="user.coins"/></td>
	            </tr>
	            </ct:for>
	        </table>
        </ct:if>
    </body>
</html>

其结构与标准语法是一对一的, 转换起来非常方便.
使用ResourceFilter扩展点进行实现,
在资源加载时使用简单的正则表达式替换,
不解析HTML语法,也就没有不规则HTML语法兼容问题,
只用了两条正则表达式, 就完成了转换:
text = text.replaceAll("\\<ct\\s*\\:\\s*([0-9|_|A-Z|a-z]+)\\s+param\\s*\\=\\s*\\"([^\\"]+)\\"\\s*\\/?\\>", "\\$$1{$2}");
text = text.replaceAll("\\<\\/\\s*ct\\s*\\:\\s*([0-9|_|A-Z|a-z]+)\\s*\\>", "\\$end{$1}");

加载模板资源时有内存消耗和转换时间消耗,但消耗不是很大,
从0.8.7版本开始支持.
参见:
http://www.commontemplate.org

2
1
分享到:
评论
8 楼 xgene 2008-10-13  
ct_struts2-0.8.7-sp1.war 更名=>tpl.war,放入apache-tomcat-6.0.16的wabapps中,启动tomcat,到http://localhost:8080/tpl/edit.action?user.id=15页面, 不停的点击IE刷新按钮(快速的连续点击),有时候你会看到输入框内的数据是空的
7 楼 javatar 2008-10-13  
使用tomcat5.5.25, 6.0.14,  6.0.16,  6.0.18 测试均未重现该问题, 希望能给出详细的重现步骤, 谢谢.
6 楼 xgene 2008-10-12  
有时刷新几下就出现变量的内容消失了,有时刷新很久才出现
5 楼 xgene 2008-10-12  
我又来了! 上个问题知道了,现在又有一个问题! 也是例子程序!
如何在这里http://localhost:8080/tpl/view.action?user.id=15
我要是不停的刷新浏览器! 有时会出现数据丢失! 为什么?
4 楼 javatar 2008-10-11  
需要加单引号, 否则user.id.title表示变量.
<span ct:message="'user.id.title'">User ID</span>
3 楼 xgene 2008-10-09  
<!--$output{user.email}-->james@xxx.com<!--$end-->
转换成属性是
<span ct:output="user.email">james@xxx.com</span>

<!--$message{"user.id.title"}-->User ID<!--$end-->
转换成属性是什么?
我写成<span ct:message="user.id.title">User ID</span>
没效果
2 楼 betafox 2008-10-07  
建议加入xml的xpath支持!!
1 楼 jianfeng008cn 2008-09-10  
很好,很强大!

相关推荐

    html基本语法标签

    html基本语法标签html基本语法标签html基本语法标签html基本语法标签html基本语法标签html基本语法标签

    html语法总结html语法总结html语法总结html语法总结

    html语法总结html语法总结html语法总结html语法总结html语法总结html语法总结html语法总结html语法总结

    学习HTML语法.zip

    学习HTML语法学习HTML语法学习HTML语法学习HTML语法学习HTML语法 学习HTML语法学习HTML语法学习HTML语法学习HTML语法学习HTML语法 学习HTML语法学习HTML语法学习HTML语法学习HTML语法学习HTML语法 学习HTML语法学习...

    HTML语法基础.以及标签的用法

    相关HTML的标签,以及用法 1、 网页架构:主要网页主架构的介绍。 2、 分隔标签:也就是所谓的水平线。 3、 排版标签:针对标签的属性,可做适当的版面编排。 4、 字体标签:教导您设定文字的字体。 5、 文字标签:...

    html语法大全、标签、属性

    &lt;img align&gt; 调整图形影像的位置 &lt;img alt&gt; 为你的图形影像加注 &lt;img dynsrc loop&gt; 加入影片 &lt;img height width&gt; 插入图片并预设图形大小 &lt;img hspace&gt; 插入图片并预设图形的左右边界 &lt;img lowsrc&gt; 预载图片...

    HTML基本语法.doc

    HTML基本语法 HTML基本语法 HTML基本语法 HTML基本语法 HTML基本语法 HTML基本语法 HTML基本语法 HTML基本语法

    html中的各个标签的格式,用法,含义

    html中各个标签的格式,用法,含义 文件类型 &lt;HTML&gt;&lt;/HTML&gt; (放在档案的开头与结尾) 文件主题 &lt;TITLE&gt;&lt;/TITLE&gt; (必须放在「文头」区块内) 文头 &lt;HEAD&gt;&lt;/HEAD&gt; (描述性资料,像是「主题」) 文体 &lt;BODY&gt;&lt;/...

    HTML 语法常用标签属性及方法

    列举了基于HTML 网页编程的常用标签属性及定义方法,为网页编程提供了便利。

    html 语言语法大全

    html语法大全 html语法大全 html语法大全

    label标签详情用法demo讲解语法详情.docx

    label标签详情用法demo讲解语法详情.docxlabel标签详情用法demo讲解语法详情.docxlabel标签详情用法demo讲解语法详情.docxlabel标签详情用法demo讲解语法详情.docxlabel标签详情用法demo讲解语法详情.docxlabel标签...

    HTML常见语法与标签索引

    HTML常见的语法与标签索引

    html语法教程chm版

    html语法教程chm版html语法教程chm版html语法教程chm版html语法教程chm版html语法教程chm版html语法教程chm版html语法教程chm版html语法教程chm版html语法教程chm版html语法教程chm版html语法教程chm版html语法教程...

    html语法教程.zip

    认识HTML语法 (标签快速导览) ◆ 网页架构 ◆ 分隔标签 ◆ 排版标签 ◆ 字体标签 ◆ 文字标签 ◆ 影像标签 ◆ 背景标签 ◆ 连结标签 ◆ 表格标签 ◆ 序列标签 ◆ 表单标签 ◆ 框架标签 ◆ 其他技巧

    HTMl语法分析程序

    一个不错的HTMl语法分析程序

    HTML语法教程.txt

    认识HTML语法 (标签快速导览) ◆ 网页架构 ◆ 分隔标签 ◆ 排版标签 ◆ 字体标签 ◆ 文字标签 ◆ 影像标签 ◆ 背景标签 ◆ 连结标签◆ 表格标签 ◆ 序列标签 ◆ 表单标签 ◆ 框架标签 ◆ 其他技巧

    html5基础语法与标签.md

    html5基础语法与标签.md

    html语法大全 下载

    html语法大全

    html语法与标签.zip

    html语法与标签.zip

    html基本语法详解

    html基本语法,给了一个列表,可以用时查查

Global site tag (gtag.js) - Google Analytics