JSP自定义标签
JSP自定义标签
一, 基本概念:
标签(Tag):标签是一种XML元素,通过标签可以使JSP网页变得简洁易于维护,还可以方便地实现同一个JSP文件支持多种语言版本。由于标签是XML元素,所以它的名称和属性都是大小写敏感的。
标签库(Tag library):由一系列功能相似,逻辑上互相联系的标签构成的集合称为标签库。
标签库描述文件(Tag Library Desriptor)
标签库描述文件是一个XML文件,这个文件提供了标签库中类和JSP中对标签引用的映射关系。它是一个配置文件,和web.xml是类似的。
标签处理类(Tag Handle Class)
标签处理类是一个Java类,这个类继承了TagSupport或着扩展了SimpleTag接口,通过这个接口可以实现自定义标签的具体功能。
两种标签: 可以自定义两种类型的标签:
javax.servlet.jsp.tagext.Tag
javax.servlet.jsp.tagext.BodyTag
有标签体的标签必须实现BodyTag接口
无标签体的简单标签可以实现Tag接口
JspTag
SimpleTag
Tag
IterationTag
SimpleTagSupport
TagSupport
BodyTag
BodyTagSupport
二、自定义JSP标签的格式:
1.<% @ taglib prefix=”someprefix” uri=”/sometaglib”>
为了使到JSP容器能够使用标签库中的自定义行为,必须满足以下两个条件:
1) 从一个指定的标签库中识别出代表这种自定义行为的标签
2) 找到实现这些自定义行为的具体类
第一个必需条件-找出自定义行为属于那个标签库-是由标签指令的前缀(Taglib Directive’s Prefix),用在标签库的文档中或者页面中插入自定义标签。所以你可以使用除了诸如jsp, jspx, java servlet
sum, sunw(它们都是在JSP白皮书中指定的保留字)之类的前缀。
uri属性满足了以上第二个要求,为每个自定义行为找到对应的类。这个uri包含了一个字符串,容器用它来定位TLD文件文件,在TLD文件中可以找到标签库中所有标签处理类的位置
当web使用程序启动时,容器从WEB-INF文件夹的目录结构的META-INF搜索所有以.tld结尾的文件。也即使说它们会定位所有的TLD文件,对于每个TLD文件,容器会先获取标签库的URI,然后为每个TLD文件和对应的URI创建映射关系。
三、自定义JSP标签的处理过程
1. 在JSP中引入标签库:
<%@ taglib prefix=” taglibpfex” uri=”tagliburi&rdq
相关文档:
搜狗双核浏览器出来之后,我就用它来调试页面,按一个按钮可以切换两种浏览器以观察网页效果,还是比较方便的,但是最近发现搜狗的JSP session貌似出现问题。还在测试中,最近一两天会写出一个比较详细的测试报告。哎,难道是我的session写的有问题?怎么在网上搜不到类似的东西... ......
表单如下:
<form name="form1" action="test.jsp" method="post" onsubmit="return checkData();">
<input name="checkall1" type="checkbox" value="0" onClick="checkAllBox(this);"/>全选<br>
<input name="answer" type="checkbox" value="a"/>A<b ......
JS代码
<script
type="text/javascript">
function closewindow(){
window.returnValue = true;
window.close();
}
function clock(){
i = i -1;
if(document.getElementById("info")){
document.getElementById("info").innerHTML
......
JSP中结果集显示如下:
<
ww:iterator
value
=
"resultList"
status
=
"status"
>
<
tr
class
=
"<ww:if test="
#status.even"
>
row-even
</
ww:if
> ......