1.为什么要使用自定义标签呢?主要是为了取代丑陋的JSP脚本。在HTML页面中插入JSP脚本有如下几个坏处:
JSP脚本非常丑陋,难以阅读。
JSP脚本和HTML代码混杂,维护成本高。
HTML页面中嵌入JSP脚本,导致美工人员难以参与开发。
出于以上3点的考虑,我们需要一种可在页面中使用的标签,这种标签具有和HTML标签类似的语法,
但有可以完成JSP脚本的功能——这种标签就是JSP自定义标签
2.开发自定义标签 2.0
步骤1,开发自定义标签类. javax.servlet.jsp.tagext.SimpleTagSupport
(如果不行的话就到java Build patch 里的Add Libraries 里Server Runtime 配置Tomcat)
重写doTag()方法,这个方法负责生成页面内容
//获取页面输出流,并输出字符串getJspContext().getOut().write("Hello World");
步骤2,建立TLD(标签库)文件.
TLD是Tag Library Definition的缩写,即标签库定义,文件的后缀是tld,每个TLD文件对应一个标签库,一个标签库中可包含多个标签。
TLD文件也称为标签库定义文件。
建一个*。tld文件里面写:
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>写写信息</shortname>
<uri>/取个名字</uri>
<tag>
<name>随便取个名字</name>
<tag-class>包名.类名(即自定义标签处理类)</tag-class>
<body-content>jsp</body-content>
</tag>
</taglib>
taglib下有3个子元素:
tlib-version:指定该标签库实现的版本,这是一个作为标识的内部版本号,对程序没有太大的作用。
shortname:该标签库的默认短名,该名称通常也没有太大的用处。
uri:这个属性非常重要,它指定该标签库的URI,相当于指定该标签库的唯一标识。如上面斜体字代码所示,JSP页面中使用标签库时就是根据该URI属性来定位标签库的。
除此之外,taglib元素下可以包含多个tag元素,每个tag元素定义一个标签,tag元素下至少应包含如下3个子元素:
name:该标签库的名称,这个属性很重要,JSP页面中就是根据该名称来使用此标签的。
tag-class:指定标签的处理类,毋庸置疑,这个属性非常重要,指定了标签由哪个Java类来处理。
body-content:这个属性也很重要,它指定标签体内容。该元素的值可以是如下几个:
tagdependent:指定标签处理类自己负责处理标签体。
empty:指定该标签只能作为空标签使用。
scriptless:指定该标签的标签体可以是静态HTML元素、表达式语言,但不允许出现JSP脚本。
JSP:指定该标签的标签体可以使用JSP脚本。
3.引入标记库文件
<%@taglib uri="/web-info/label.tld(指定文件路径,你所建的tld文件)" prefix="随便取个名字"%>
使用:
<%@ taglib uri="/WEB-INF/label.tld" prefix="a"%>
<a:zhou/>
<!-- 配置标签属性 --> 这个也是写在.tld文件里的
<attribute>
<name>属性名</name>
<required>true</required>
<fragment>true</fragment>
</attribute>
对于有属性的标签,需要为tag元素增加attribute子元素,每个attribute子元素定义一个属性。attribue子元素通常还需要指定如下几个子元素:
name:设置属性名,子元素的值是字符串内容。
required:设置该属性是否为必需属性,该子元素的值是true或false。
fragment:设置该属性是否支持JSP脚本、表达式等动态内容,子元素的值是true或false。
分享到:
相关推荐
jsp自定义标签库实现数据列表显示,包括代码,文档,希望对大家有帮助.
jsp自定义标签库问答集锦.
jsp自定义标签库 例程(附带工程和jar文件)
jsp标签库的应用可以简化我们在编写页面代码量;使我们每一个人更加轻松的去编程
博文链接:https://lisongqiu168.iteye.com/blog/978043
JSP自定义标签。在自定义标签的起始和结束标签之间的部分为标签体(Body)。 标签处理程序类:定义标签的行为,并在JSP引擎遇到自定义标签时调用执行。 标签库描述符(TLD)文件:描述标签库的XML文档,向JSP引擎...
jsp自定义标签所需jar包,jsp自定义标签所需jar包 ,jsp自定义标签所需jar包
jsp使用自定义标签taglib分页系列——完整例子
原创-自定义标签库制作手册,提供范例,供参考 jsp、java、tld
由浅到深详细讲解JSP自定义标签 一、基本概念 1、标签(Tag) 标签是一种XML元素,通过标签可以使JSP网页变得简洁并且易于维护,还可以方便地实现同一个JSP文件支持多种语言版本。由于标签是XML元素,所以它的名称和...
java jsp 自定义标签开发 在JSTL提供了四个标签库(核心标签库、国际化标签库、数据库标签库和XML标签库)
JSP自定义标签库,详细的解说,可以作为参考手册
这里在实现自定义标签时,继承的2个类分别是org.apache.struts2.views.jsp.ComponentTagSupport和org.apache.struts2.components.Component,ComponentTagSupport实际上是对BodyTagSupport的一次封装,看一下...
jsp通过自定义标签库实现数据列表显示的方法.docx
无限级动态树,支持节点自定义,使用简单,可更换图标,javascript 动态效果。非常漂亮!
jh-plugins是一项基于JSTL的自定义标签(插件)库,致力于打造一处实现、任何项目通用的开源项目。 jh-plugins已实现标签库:分页 jh-plugins特点:高效、轻巧、简单、适用(可融合与任何B/S架构的java项目) jh-...
这个压缩文件包含了多个有关实现分页功能的JSP代码片段,以及如何集成QQ菜单和各种JSP自定义标签库的示例。这些资源对于开发动态网站和网络应用程序的开发者来说非常有用,因为它们提供了一些预构建的功能模块,可以...
JSTL 以及自定义标签开发相关 JSTL 核心标签库标签共有13个,功能上分为4类: 1.表达式控制标签:out、set、remove、catch 2.流程控制标签:if、choose、when、otherwise 3.循环标签:forEach、forTokens 4.URL...