1.自定义标签库的作用与EL表达式作用一样,都是为了使jsp页面中java代码量减少
2.创建步奏
3.标签处理类必须扩展以下两个类之一:
查看API时,我们可以看到TagSupport类有以下几个方法:
4
.
5.TagSupport类中的两个重要属性
6.PageContext类
如:(1)在一个页面中PageContext.setAttribute("username","zhangsan",PageContext.SESSION_SCOPE)
(2)在另一个页面中调用session.getAttribute("username")
7.doStarTag()方法
8.doEndTag方法
8.自定义的标签属性
那么,在标签处理类中应该定义如下方法
9.通过两个案例认识自定义标签库
(1)先新建一个类,继承TagSupport方法;
(2)重写doStarTag方法
表示当遇到自定义标签开头时,就会执行这个方法,并在页面上输出hello world,并继续执行下面代码
(3)重写doEndTag方法
(4)创建标签库的描述文件:.tld 是一个标准的xml文件,存放位置必须为
,一般网上找的到,直接找就行,不需要自己写。
在tld文件的开头写上
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
(5)在jsp页面前部写下
】
url对应之前在WEBROOT文件下定义的标签的uri,表示可以使用指向当前uri的.tld文件中标签
prefix前缀的意思,类似于<jsp:***>中jsp,表示引用到当前的myTag中标签库
(6)运行jsp页面
在是实际中这个案例针对于网站的国际化,用户发送中文请求,可以以英文形式显示出来
(1)前面步骤和第一个范例的1部相同
(2)完成myTag2
(3)建一个servlet,在启动的时候完成初始化工作。先建一个properties,里面写上
title=hello world
body=welcome
用servlet在初始化的时候加载message.properties的信息进入内存
注:该servlet仅仅是在初始化时加载属性文件信息,并不希望用户访问,所以我们可以在web.xml中的url-pattern中不进行配置
代码如下
(4)在myTag.tld中定义标签
attribute:表示message中有key这样一个属性
(5)定义jsp使用标签