一、基本概念
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.简单的标签开发
1.1 写处理类
1
1
package
com.dongjj.tag;
2
2
3
3
import
javax.servlet.jsp.JspException;
4
4
import
javax.servlet.jsp.PageContext;
5
5
import
javax.servlet.jsp.tagext.Tag;
6
6
7
7
public
class
TimeTag
implements
Tag
{
8
8 protected PageContext pageContext;
9
9 private Tag parent;
10
10
11
11 // ----标签开始时调用此方法-------
12
12 public int doStartTag() throws JspException {
13
13 try {
14
14 pageContext.getOut().println("Now:" + new java.util.Date());
15
15 } catch (Exception e) {
16
16 throw new JspException(e.getMessage());
17
17 }
18
18 return SKIP_BODY;
19
19 }
20
20
21
21 // ----标签结束时调用此方法-------
22
22 public int doEndTag() throws JspException {
23
23 return EVAL_PAGE;
24
24 }
25
25
26
26 // 实现
27
27 public void release() {
28
28 }
29
29
30
30 // 实现
31
31 public void setPageContext(PageContext pageContext) {
32
32 this.pageContext = pageContext;
33
33 }
34
34
35
35 // 实现
36
36 public Tag getParent() {
37
37 return parent;
38
38 }
39
39
40
40 // 实现
41
41 public void setParent(Tag parent) {
42
42 this.parent = parent;
43
43 }
44
44
45
45}

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

1.2 编写tld文件 放在WEB-INF目录下

1.3 在在Web应用的web.xml文件中声明标签库引用 web.xml version="2.4"的不用引入也可,能在路径下搜索
1
<
taglib
>
2
<
taglib-uri
>
http://www.cnblogs.com/xd502djj/tags
</
taglib-uri
>
3
<
taglib-location
>
/WEB-INF/mytags.tld
</
taglib-location
>
4
</
taglib
>
5
<
taglib-uri
>
对应tld文件中的
<
uri
>
,
<
taglib-location
>
指出tld文件的位置

2

3

4

5

1.4 写jsp
1
<%
@taglib uri="http://www.cnblogs.com/xd502djj/tags" prefix="mt"
%>
2
3
<
h1
align
="center"
><
mt:time
/></
h1
>

2

3

调用 在页面上显示如下
Now:Tue Mar 24 16:33:50 CST 2009
本文转自茄子_2008博客园博客,原文链接:http://www.cnblogs.com/xd502djj/archive/2009/03/24/1420488.html,如需转载请自行联系原作者。