`
javatar
  • 浏览: 1700619 次
  • 性别: 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语法分析程序

    2. **miniBrowse.java**:根据标签“Java小程序”,我们可以推断这可能是该HTML语法分析程序的核心源代码文件,用Java编程语言编写。Java是一种广泛使用的面向对象的编程语言,以其跨平台能力和安全性著称。在这个...

    学习HTML语法.zip

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

    html低级语法检查,超级文本编辑器

    在编写HTML代码时,遵循正确的语法至关重要,因为任何错误都可能导致页面显示不正常或者无法正确解析。正则表达式是一种强大的文本处理工具,可以用来检查、查找、替换或匹配HTML代码中的特定模式。而一个“超级文本...

    HTML语法入门(简单的基本HTML语法知识) 

    ### HTML语法入门(简单的基本HTML语法知识) #### 一、HTML简介 HTML(HyperText Markup Language),即超文本标记语言,是一种用于创建网页的标准标记语言。通过使用一系列预定义的标签,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语法 (标签快速导览) ◆ 网页架构 ◆ 分隔标签 ◆ 排版标签 ◆ 字体标签 ◆ 文字标签 ◆ 影像标签 ◆ 背景标签 ◆ 连结标签 ◆ 表格标签 ◆ 序列标签 ◆ 表单标签 ◆ 框架标签 ◆ 其他技巧

    JSP技术的语法-标签

    **JSP技术的语法-标签** 在Web开发中,JavaServer Pages (JSP) 技术是一种用于构建动态网页的应用程序开发平台。JSP通过结合HTML、CSS、JavaScript以及Java代码,提供了强大的功能来创建交互式的网页。本篇将详细...

    HTML语法教学.pdf

    2. 分隔标签:也就是所谓的水平线,是 HTML 语法中用来分隔内容的标签。 3. 排版标签:针对标签的属性,可以做适当的版面编排。 4. 字体标签:教导您设定文字的字体。 5. 文字标签:教导您设定文字的颜色、行距、...

    html5基础语法与标签.md

    html5基础语法与标签.md

    《HTML语法大全 》(高清晰)pdf版

    以上仅是HTML语法的一部分,全面掌握HTML需要学习更多的标签和属性,以及如何结合CSS和JavaScript进行更复杂的设计和交互。《HTML语法大全》作为一本详实的参考书,提供了丰富的示例和解释,是学习HTML不可多得的...

    HTML+CSS基础教程-介绍HTML和CSS的基础知识 学习HTML基础语法、标签、CSS基础语法和选择器

    html----HTML+CSS基础教程(课件PPT版)----介绍HTML和CSS的基础知识。学习HTML基础语法、标签、CSS基础语法和选择器,以及它们的基本用法。

    HTML Grammar(HTML 语法)

    在HTML语法中,大致上可以分为: 网页架构:主要网页主架构的介绍 分隔标签:也就是所谓的水平线 排版标签:针对标签的属性,可做适当的版面编排 字体标签:教导您设定文字的字体。 文字标签:教导您设定文字的...

    HTML语法字典

    - **HTML 3.0**:引入了更严格的语法规范,增加了更多标记语言元素。 - **HTML 3.2**:增加了更多的布局和样式控制。 - **HTML 4.0**:提供了更强大的功能,包括框架、样式表、客户端脚本等。 - **XHTML**:强调XML...

    HTML基本语法大全

    1. **HTML语句结构**:HTML语句通常由起始标签和结束标签组成,形如`&lt;TAG&gt;`和`&lt;/TAG&gt;`。起始标签开启一个元素,结束标签则关闭它。例如,`&lt;p&gt;`用于开始一个段落,`&lt;/p&gt;`用于结束。有些标签是自闭合的,比如`&lt;img&gt;`,...

    详解HTML&CSS&JavaScript语法辞典

    ### 详解HTML、CSS与JavaScript语法辞典 #### HTML(HyperText Markup Language) HTML是一种标记语言,用于构建网页的基本结构。它由一系列的元素组成,这些元素通过标签表示。了解HTML的基本语法对于创建任何...

    HTML5 语法知识总结 思维导图

    适用于想复习HTML5所以标签,语法的同学 适用于HTML5期末考试的一个快速复习 适用于快速查找与记忆HTML5大量标签的同学 适用于忘了某些标签,想快速查看的同学 适用于喜欢阅读思维导图的同学 使用场景: 个人复习 ...

    HTML初识基础认知 + HTML标签

    HTML初识基础认知是学习HTML标签的基础,理解HTML的基本语法和标签的关系,能够使用排版标签实现网页中的标题、段落等效果,使用相对路径选择不同目录下的文件,使用媒体标签在网页中显示图片、播放音频和视频,使用...

    html基本语法

    html基本语法,html入门知识,html基本特性

Global site tag (gtag.js) - Google Analytics