下载首页 | 资讯中心 | 下载分类 | 最近更新 | 排 行 榜 | 国产软件 | 国外软件 | 汉化补丁 |
文章搜索: 分类 关键字 收藏本站设为首页
您的位置:首页网页设计ASP程序 → 开发JSP自定义行为__教程
开发JSP自定义行为__教程
日期:2007-5-20 1:19:01 人气:54     [ ]
上一页 [1] [2] [3] 下一页
 1. 要开发一个自定义行为,需要使用一系列的类和接口,这些类和接口在JSP1.1规范中被称为标记扩展机制(tag extension mechanism)。实现标记处理程序所需要的所有接口和类都是在javax.servlet.jsp.tagext包中定义的。两个主要的接口分别是Tag和BodyTag。为了使开发标记处理程序更加容易,API定义了两个起支持作用的类:TagSupport和BodyTagSupport。这两个类分别为上面的两个接口提供了默认的实现。

2. 标记库是一个自定义行为的集合。在标记库中除了标记处理程序的类文件以外,标记库里还必须包括一个tld文件。这是一个XML文件,它把所有的自定义行为的名称映射到相应的标记处理程序类,而且对每一个自定义行为所支持的所有属性进行了描述。类文件和tld可以被打包到一个JAR文件中以方便安装。

3. 开发,配置和使用一个简单的自定义行为通常需要做这几部分工作。

(1) 实现一个标记处理程序类。对这个类进行编译,然后把生成的类文件放到应用程序的WEB-INF/classes目录下。

(2) 创建TLD文件。看下面这个简单的实例。

<?xml version=”1.0” encoding=”ISO-8859-1” ?>

<!DOCTYPE taglib

PUBLIC “-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN”

http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd>



<taglib>

<tlibversion>1.0</tlibversion>

<jspversion>1.1</jspversion>

<shortname>test</shortname>



<tag>

<name>hello</name>

<tagclass>com.mycompany.HelloTag</tagclass>

<bodycontent>empty</bodycontent>

<attribute>

<name>name</name>

</attribute>

</tag>

</taglib>

把这个文件取名为*.tld,并把它放在应用程序的WEB-INF/tlds目录下。

(3) 现在你可以这样在JSP页面中使用自定义行为。

<%@ taglib uri=”/WEB-INF/tlds/mylib.tld” prefix=”test” %>

<html>

<body bgcolor=”white”>

<test:hello name=”maojb”/>

</body>

</html>

当这个页面被请求时,JSP容器就使用这个TLD来发现与自定义行为相对应的类。然后它将调用所有相应的方法,将相应的文本加入到应答中去。以上就是在最简单的情况下我们要做的所有事情。

4. 先来看一下最重要的Tag接口的方法:

public void setPageContext(PageContext pageContext);

public int doStartTag() throws JspException;

public int doEndTag() throws JspException;



然后我们了解一下TagSupport类提供的对这些方法的实现。

Public class TagSupport implements Tag , Serializable {

Protected PageContext pageContext;

…….

Public void setPageContext(PageContext pageContext) {

This.pageContext = pageContext;

} //这个方法是在使用标记处理程序之前被JSP容器调用的。



Public int doStartTag() throws JspException {

Return SKIP_BODY;

} //当遇到开始标志时,JSP容器将调用doStartTag()方法。



Public int doEndTag() throws JspException {

Return EVAL_PAGE;

} //当遇到结束标志时,JSP容器将调用doEndTag()方法。

}

5. 开发一个不需要对行为元素体做任何事情的标记处理程序是非常简单的。然而,对于一个需要处理行为体的标记处理程序来说,还需要一些方法。这些方法是由BodyTag接口定义的,该接口扩展了Tag接口。

6. 一个有行为体的标记处理程序的执行过程。

(1) setAttr1(“value1”)

(2) setAttr2(“value2”)

(3) doStartTag()

(4) setBodyContent()

(5) doInitBody()

(6) doAfterBody()

(7) doEndTag()

7. BodyTagSupport类有许多实用的方法来处理行为体。

如:getBodyContent() , getPreviousOut()

8. 如何让多个行为互相协作。

内层行为是如何告诉外层行为自己定义参数信息之类的东西呢?这个问题的答案就在由TagSupport类实现的一些Tag接口方法和一个工具方法里。

这些Tag接口的方法是setParent()和getParent() 。一个嵌套的标记处理程序通常有一个对容纳它的父元素的引用。所以,一个在任意嵌套层次上的标记处理程序可以使用getParent()方法来得到它的父元素,然后可以得到父元素的父元素。可以一直这样下去,直到到达一个没有父元素的Tag(即getParent()返回了null)。这意味着已经到达了最外层。
出处:本站原创 作者:佚名
 阅读排行
01.精美qq空间横幅代码
02.最酷qq个性女生网名
03.最新又有免费QQ秀啦《..
04.巧用透明FlaSh扮靓你的..
05.花之神匠代码(最新代码..
06.最新QQ空间免费导航
07.最新免费个人形象设置..
08.最新qq空间flash代码m..
09.CSS技术结合图像实现动..
10.Photoshop光影魔术师:..
11.QQ音速种子狂刷
12.最新QQ空间透明代码
13.PS实例教程:教你制作结..
14.Photoshop光影魔术师:..
15.制作背景图__教程
16.用Photoshop制作漂亮的..
17.如何获得QQ音速种子
18.≤QQ空间代码≥在日志..
19.网页浮动广告的制作代..
20.用Photoshop制作大红灯..
21.常用CSS
22.Photoshop给靓丽美女打..
 推荐文章
·Photoshop 表现技法之..
·快速将你的相片矢量化..
·PHOTOSHOP制作炽热的太..
·用Photoshop制作美丽的..
·流行杀手的娃娃工厂__..
·打造8号台球__教程
·PHOTOSHOP制作待机MM图..
·用Photoshop帮MM做纹身..
·PHOTOSHOP美眉着色绝招..
·PHOTOSHOP花露的制作_..
·PHOTOSHOP渐变工具的巧..
·PHOTOSHOP手绘奥兰多-..
·高难度抠图两种方法__..
·Photoshop高尔夫球的制..
·Photoshop打造精美玉佩..
Eqxia_COM下载站 版权所有 Copyright© 2001-2005 Www.eqxia.COM, All Rights Reserved.