CommonTemplate(
http://www.commontemplate.org )的Html标签属性语法外套是项目比较重要的Feature.
如:
<table ct:if="users != null && users.size > 0" border="1">
<tr ct:for="user : users">
<td><span ct:out="for.index + 1">1</span></td>
<td><span ct:out="user.name">james</span></td>
<td><span ct:out="user.coins">2.00</span></td>
</tr>
</table>
过滤后:
$if{users != null && users.size > 0}
<table border="1">
$for{user : users}
<tr>
<td>$out{for.index + 1}<span>1</span>$end</td>
<td>$out{user.name}}<span>james</span>$end</td>
<td>$out{user.coins}}<span>2.00</span>$end</td>
</tr>
$end
</table>
$end
当前版本是自行解析的, 对非法的Html格式容错性较弱, 只作了些自动关闭未结束标签之类的简单处理. 为了尽快稳定功能, 准备借助其它Html容错解析工具包进行解析, 比较成熟的是HtmlParser(
http://htmlparser.sourceforge.net), 但发现它实现此功能并不方便. 而需求是很简的, 就是将特殊名称空间的属性转换为tag两端的内容.
考虑到此功能不只是CommonTemplate能用到, 其它模板引擎(如:Velocity/FreeMaker)一样可以用, 所以发了一个请求给htmlparser, 并给出了我期望的API:
// Tag外套内容封装
public final class Coat {
private final String before;
private final String after;
public Coat(String before, String after) {
this.before = before;
this.after = after;
}
public String getBefore() {
return before;
}
public String getAfter() {
return after;
}
}
public interface AttributeCoatHandler {
// 解析器在遇到相应属性时, 回调此接口
// 并将返回的Coat中的before和after内容添加到Tag两端
Coat handleAttribute(String attrName, String attrValue);
}
// 注册指定名称空间的属性处理器
TagCoatContext.registerAttributeCoatHandler(String namespace, AttributeCoatHandler handler);
希望他们能实现, 如果不行, 可能要自己写了, 先加入延迟计划中.
分享到:
相关推荐
最后,表格语法中,标签用于创建表格,aling属性用于设置表格的对齐方式,如left(左对齐)、center(居中)。background属性用于设置表格的背景图片,border属性用于设置边框的大小。bgcolor和bordercolor属性分别...
HTML标签和属性总结 HTML标签是构建Web页面的基础,了解HTML标签的属性和使用方法是非常重要的。本文将详细介绍HTML标签的种类、属性和使用方法,适合初学者学习和参考。 一、 HTML标签的种类 HTML标签可以分为两...
HTML(HyperText Markup Language)是用于创建网页的标准标记语言,其中标签和属性是构建网页结构和样式的关键元素。本文将详细介绍一些常见的HTML标签属性及其用途。 1. **跑马灯标签 `<marquee>`**:这个标签可以...
该资源涵盖了 HTML5 中的基本标签、语法知识、表格定义、frameset 框架、表单标签、input 属性等方面的知识点。 基本标签 * H1~H6 标题标签:用于定义标题,H1 代表最大的标题,H6 代表最小的标题 * P 段落标签:...
这个程序通常由一系列算法和规则组成,可以识别并处理HTML标签、属性、实体等元素。在给定的资料中,我们有三个文件: 1. **说明.htm**:这是一个可能包含程序使用指南或详细功能介绍的HTML文件。用户可以通过阅读...
2. HTML标签属性序列:每个HTML标签都可能有多个属性,这些属性按照一定的顺序排列,形成属性序列。属性序列可以包含ID、类名、样式、链接、大小等信息。这些信息可以被利用进行信息隐藏,因为对于非专业人士,它们...
图像的语法格式为:,其中 src 属性是图像 URL,alt 属性是图像替代文字,width 和 height 属性是图像宽度和高度,border 属性是图像边框宽度,align 属性是图像对齐方式。 表格 Html 的表格包括表格结构、表格...
这些只是HTML标签属性的一部分,实际HTML语法还包括表格的复杂排版、列表、表格、表单、框架等更多内容。了解并熟练掌握这些基本标签和属性是构建静态网页的基础。在现代Web开发中,我们通常会结合CSS和JavaScript来...
标签的属性可以提供额外的信息,比如`描述图像的文字">`,这里的`src`和`alt`就是属性,分别指定了图像的来源和替代文本。 HTML标签是大小写不敏感的,但通常推荐使用小写字母。属性值需要用引号包围,可以是双引号...
这些只是HTML标签和属性的一部分,实际HTML语法还包括表格、表单、框架、列表、锚点等多种元素,以及CSS和JavaScript来增强样式和交互性。理解和熟练运用这些基础,能帮助开发者构建功能丰富的网页。
这份“html 语法手册下载 chm版.RAR”压缩包包含了关于HTML语法的全面指南,适用于初学者和有一定经验的开发者,帮助他们深入理解和掌握HTML的各种元素、属性和结构。 在“html语法教程.chm”中,你将找到以下关键...
#### 基础语法与标签 1. **注释**: ```html <!----> ``` 用于添加注释,对代码进行解释或备注,不会显示在页面上。 2. **滚动文字**:`<marquee>`标签可以创建滚动的文字或图片。 - `behavior`属性定义滚动...
2. **HTML标签**:文档的根元素`<HTML>`,用于包裹整个HTML内容,并在结束时使用`</HTML>`。 3. **头部**:`<HEAD>`标签内包含文档的元信息,如标题、字符集设定等,通常还会包含`<TITLE>`标签来定义网页标题。 4. *...
### HTML语法概述与各标签详解 #### 一、HTML语法概览 HTML(Hyper Text Markup Language),即超文本标记语言,是一种用来创建网页的标准标记语言。它通过一系列的标签来组织网页内容,使得内容能够被浏览器正确...
3. 排版标签:针对标签的属性,可以做适当的版面编排。 4. 字体标签:教导您设定文字的字体。 5. 文字标签:教导您设定文字的颜色、行距、变化等等。 6. 影像标签:教导您如何在网页中植入图像。 7. 背景标签:...
HTML语法是构建网页的基础,它由一系列标签构成,这些标签定义了页面的结构和内容。例如,`<html>`标签是文档的根元素,`<head>`包含了元数据,如标题,而`<body>`则包含用户在浏览器中看到的实际内容。HTML注释以`...
HTML语法主要由元素(Elements)、属性(Attributes)和值(Values)构成。元素通常以尖括号包围,如`<html>`,并在关闭时添加斜线,如`</html>`。元素可以包含其他元素或文本内容。属性定义了元素的行为或特性,如`...
使用方法:复制压缩包中的“DefaultLanguage.py”到“Sublime Text文件夹\Data...Ctrl+N新建文档,默认即为HTML文件。 查阅了一些资料,自己整理的。 压缩包中包含参考文档,说的不是特别清楚,直接用我的文件就可以。