欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

开发JSP自定义行为(1)

来源: javaer 分享于  点击 38235 次 点评:45

开发JSP自定义行为(1)


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文件。看下面这个简单的实例。

PUBLIC “-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN”
http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd>

1.0
1.1
test

hello
com.mycompany.HelloTag
empty

name



把这个文件取名为*.tld,并把它放在应用程序的WEB-INF/tlds目录下。
3)现在你可以这样在JSP页面中使用自定义行为。
<%@ taglib uri=”/WEB-INF/tlds/mylib.tld” prefix=”test” %>





当这个页面被请求时,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()方法。
}


相关栏目:

用户点评