第19篇创建自定义标签库
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. 当在jsp中 遇到自定义标 记时,要找到 标记处理器, 首先要实例化 标记处理器类
hello.tld
<shortname>example</shortname> ·············· <name>hello</name> <tagclass>tagext.HelloTag</tagclass> ·············
• Xml可以看作是sgml的简版,可以创建自定义元 素以满足创作需要,xml是一组语法规则,指定了 如何使用标记元素表示结构化数据,标记元素表 示为一个开始标记、一个体、一个结束标记
• <employee id=“123”>
• <first-name>zhong</first-name>
• <last-name>shaohong</last-name>
4. 体内容:上面的例子两个标记都没有体内容。
标签的种类
不带属性和主体的标记 <examples:hello/>
有属性但没有主体的标记 <examples:hello user=“hellking”/> <examples:hello user=“hellking”> </examples:hello >
1. 标记名称:也即jsp:forward,jsp是前缀,forward是后缀,中间用冒 号分割。
2. 标记的属性:page就是jsp:forward的属性。而name、value是 jsp:param的属性。
3. 嵌套 :在<jsp:forward>中还有<jsp:param>标记,前者为父标记,后 者为子标记。
value=”house.gif” /> </jsp:forward>
功能:在next.jsp中使用:
request.getParameter(“imag e”),把属性“image”的值 取出来,也即:house.gif
假如上面例子使用的JSP标签是我们自己定义的,那么对于该标记而言, 有如下概念:
第十九章 创建自定义标签库
XML
XML介绍 可扩展标记语言(XML)是用来定义文
档标记语言的框架。简单地说,文档标 记语言是具下列一项或多项功能元素 (通常称为标记)集: 说明文档结构 说明文档内容 控制如何为用户显示文档
SGML、HTML、XML比较
Html、xml都是基于sgml,即标准通用标 记语言。但是sgml非常复杂,而html在 可扩展性方面有他的缺陷,同时,由于 浏览器不会去检查错误的HTML代码,这 样就导致internet上面大量的文档包含了 错误的html语法,而且越来越严重,所 以W3C(万维网联盟)为了寻找一条好的解 决办法,这样xml就被广泛的应用于web 开发领域。
• <tel>13507414047</tel>
• </empoyee> • 以上XML示例包含有四个元素: <employee>、
<first-name>、 <last-name>、 <tel>
XML
文档元素
文档必须只有1个顶层元素,称为文档元素或根元素, 类似于HTML页中的<HTML>元素,其他所有元素都嵌 套在其中
创建格式正确的XML文档的一些基本规则:
1. 文档必须有一个顶层元素(文档元素或根元素) 2. 元素必须被正确地嵌套 3. 每一个元素必须同时拥有起始标签和结束标签 4. 起始标签中的元素类型名必须与相应结束标签中的名称
完全匹配 5. 元素类型名是区分大小写的
XML
元素内容是起始标签和结束标签之间的 文本
自定义标记库应用程序
编写“标记处理类”。 编辑“标记库描述文件”。 编辑web.xml文件。 在JSP页面中声明与使用“自定义标记
库”。
自定义标签的工作过程
hello.jsp <%@ taglib uri=“/hello” prefix=“examples” %>
<taglib-uri>/hello</taglib-uri> web.xml <taglib-location>/WEB-INF/tlds/hello.tld</taglib-location>
创建自定义标签中的概念
标签处理类: 是一个Java类,这个类继承了 TagSupport或者扩展了SimpleTag接口,通过这个类 可以实现自定义JSP标签的具体功能,它扩展了JSP API提供的这个接口: javax.servlet.jsp.tagext.JspTag。
标签库描述器(Tag Library Descriptor, TLD)文件: 一个XML文件,它描述了包含着一个或多个标记扩展 的标记库,记录着标签器的属性、信息和位置.这个 文件提供了标签库中类和JSP中对标签引用的映射关 系。它是一个配置文件,和web.xml是类似的。
带属性和主体的标记 <examples:hello user=“hellking” > 这是标记体 </examples:hello>
标签的种类
嵌套标记——自定义标记内包含其他自定 义标记。例如:
<myTagA> <myTagB> </myTagB> </myTagA>
创建自定义标签中的概念
在元素内容中可以包括嵌套元素和字符 数据两种类型
什么是自定义标签?
<%@ taglib uri='WEB-INF/welcome.tld‘
prefix='w' %> <html>
<body>
自自定定义义标标签签是遵循 <Prefix:TagFileName> 格式
的标准 HTML 标签
<w:HelloWorldTag />
</body>
标签处理程序文件
</htm嵌l>入 Java 代码
前缀
JSP自定义标签的优点
分离了程序逻辑和表示逻辑 将Java代码从HTML中剥离,便于美工维
护页面 减少了JSP页面中的脚本,减少了维护成
本 提供了可重用的功能组件
Βιβλιοθήκη Baidu签的概念
<jsp:forward page=”next.jsp”> <jsp:param name=”image”
标签(Tag): 标签是一种XML元素,通过标签可以使JSP
网页变得简洁并且易于维护,还可以方便地实 现同一个JSP文件支持多种语言版本。由于标 签是XML元素,所以它的名称和属性都是大小 写敏感的 标签库(Tag library):
由一系列功能相似、逻辑上互相联系的标签 构成的集合称为标签库。