大海的工作筆記
工作、學習、生活
posts - 0,comments - 1,trackbacks - 0

自定义标签实际上是一个实现了特定接口的java类,封装了一些常用功能,在运行时,标签将被相应的代码所替换。标签的集合构成了标签库。

 

要开发自定义标签,其核心就是要编写标签处理器类,一个标签对应一个标签处理器类。所有的标签处理器类都要实现JspTag接口。

 

标签有四种形式:空标签、带有属性的空标签、带有内容的标签、带有内容和属性的标签。

 

Tag接口定义了所有的传统标签处理器需要实现的基本方法。这些方法包含:设置页面的上下文setPageContext、设置父标签setParent、获取父标签getParent、标签开始调用doStartTag、标签结束调用doEndTag、释放资源调用releaseTag接口还定义了一些常量:执行标签体EVAL_BODY_INCLUDE、忽略标签体SKIP_BODY、执行余下部分EVAL_PAGE、忽略余下部分SKIP_KPAGE

 

IterationTag接口从Tag接口继承过来,新增了方法doAfterBody和常量EVAL_BODY_AGAIN

 

BodyTag接口从IterationTag接口继承过来,新增了方法setBodyContentdoInitBodyEVAL_BODY_BUFFERED

 

 

编写好标签处理器类后,为了使用标签,还需要在标签库描述符(TLD)文件中配置标签的相关信息。当标签库部署在JAR文件中,TLD文件必须放在META-INF目录或其子目录下;当标签库部署在WEB应用程序中,TLD文件必须放在WEB-INF目录或其子目录下,classeslib子目录除外。

 

SimpleTag接口定义了5个方法:设置上下文setJspContext、设置父标签setParent、获取父标签getParent、设置标签体setJspBody、处理标签doTag

 

与传统标签处理器不同,简单标签的处理器实例不会被缓存而重复使用,每当遇到标签时,容器会创建一个新的标签处理器实例。

posted on 2009-12-11 20:06 冯真海 阅读(141) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: