设计客户化标签,根据实际情况而定!这里对一些小的知识点多来点浅谈,希望各位可以互相的学下!
1.标签(Tag):
标签是一种XML元素,通过标签可以使JSP网页变得简洁并且易于维护,还可以方便地实现同一个JSP文件支持多种语言版本。由于标签是XML元素,所以它的名称和属性都是大小写敏感的
2.标签库(Tag library):
由一系列功能相似、逻辑上互相联系的标签构成的集合称为标签库。
3.标签库描述文件(Tag Library Descriptor):
标签库描述文件是一个XML文件,这个文件提供了标签库中类和JSP中对标签引用的映射关系。它是一个配置文件,和web.xml是类似的。
4.标签处理类(Tag Handle Class):
标签处理类是一个Java类,这个类继承了TagSupport或者扩展了SimpleTag接口,通过这个类可以实现自定义JSP标签的具体功能。
1.标签库元素<taglib>
<taglib>
<taglib-version> mytag1.0</taglib-version>//标签库的版本号
<jsp-version> jsp2.0</jsp-version>//jsp的版本号
<short-name>mytags</short-name>//标签的默认前缀名称
<uri>http://www.baidu.com/mytag</uri>//标签库唯一访问标识符
2.标签元素 <tag>
<tag>
<name>mytag</name>//标签的名称,以后就是可以在jsp页面中通过<mytags:mytag>来访问
<tag-class></tag-class>//标签的处理类,完整的包名加类名,这个类必须继承TagSupport或扩展SimpleTag接口 下面介绍
<body-content>??</body-content>//标签体的内容,??有三个可选:
??=jsp 表示标签体可以加入jsp代码程序
??=empty 表示标签体为空,没有标签体
??=tagdependent 表示标签体有标签自己处理
<attribute>//定义标签的属性,这里的属性必须和标签处理类里的一致,并在处理类里提供getter、setter方法
<name>??</name>//??表示处理类的属性
<required>false</required>//表示属性是否为必须的,默认为false ,表示可以没有
<rtexprvalue>true</rtexprvalue>//表示属性的值是否支持jsp表达式
</attribute>
</tag>
</taglib>
3.处理类
TagSupport处理标签的方法:
1.TagSupport类提供了两个处理标签的方法:
public int doStartTag() throws JspException
public int doEndTag() throws JspException
2.doStartTag:但JSP容器遇到自定义标签的起始标志,就会调用doStartTag()方法。
doStartTag()方法返回一个整数值,用来决定程序的后续流程。
3.doEndTag:但JSP容器遇到自定义标签的结束标志,就会调用doEndTag()方法。doEndTag()方法也返回一个整数值,
用来决定程 序后续流程。
返回的常量包括如下:
标签中静态常量代表的意思大致:
EVAL_BODY_INCLUDE:告诉服务器正文的内容,并把这些内容送入输出流
SKIP_BODY:告诉服务器不要处理正文内容
EVAL_PAGE:让服务器继续执行页面
SKIP_PAGE:让服务器不要处理剩余的页面
EVAL_BODY_INCLUDE、SKIP_BODY一般由doStartTag()返回,而EVAL_PAPGE、SKIP_PAGE由doEndTag()返回。
4.使用自定义标签
在web应用中,早起使用的时候要在web.xml里面配置一下,现在不用了,至少我是没有在配置了,如果在jsp文件中用到了,像用常规的标签一样使用,在jsp里导入标签库
<% taglib prefix="app" uri="/WEB-ING/app.tld">,一般情况下tld都放在web-inf下,根据实际清苦而定,prefix="app" 是起的别名,在本文中默认名字是“ <short-name>mytags</short-name>//标签的默认前缀名称”mytags。
主要是看看在实际情况而定,还有很多知识点,用到了再学吧!