`
ruilinruirui
  • 浏览: 1046955 次
文章分类
社区版块
存档分类
最新评论

自定义标签1

 
阅读更多

自定义标签主要用于移出JSP页面中的Java代码。

移出JSP页面中的Java代码,主要要完成两个步骤:

1、编写一个实现Tag接口的Java类,并覆盖doStartTag,把jsp页面中的Java代码写到doStartTag方法中。

2、编写标签库描述符(tld)文件,在tld文件中对自定义标签进行描述。

3、完成以上操作,即可在JSP页面中导入和使用自定义标签。查看tag接口API文档,分析自定义标签的执行流程:

JSP引擎将遇到自定义标签时,首先创建标签处理器类的实例化对象,然后按照JSP规则定义的通信规则依次调用它的方法。

1、JSP引擎实例化处理器后,将调用setPageContext()方法将JSP页面的pageContext对象穿递给标签。

2、依次调用setParent(),doStartTag(),doEndTag(),通常还会调用release();

自定义标签还可用于完成一些页面逻辑:

1、 Jsp页面某部分内容是否执行。

2、 标签后的Jsp页面是否执行

3、Jsp页面某部分内容重复执行

4、修改Jsp页面内容输出

实现SimpleTag接口的标签通常称为简单标签。共定义5个方法:

setJspContext():用于把JSP页面的PageContext对象传递给标签处理器对象

setParent():用于把父标签处理器对象传递给当前标签处理器对象,

getParent():用于获取当前标签的父标签处理器对象,

setJspBody():用于把代表标签体的Jsp,

doTag():用于完成所有的标签逻辑,包括输出、迭代、修改标签体内容等。在doTage()中可以抛出javax.Servlet.jsp.SkipPageExcpetion异常,

用于通知WEB容器不再执行JSP页面中位于结束标记后面的内面,等效于在传统标签的doEndTag()中返回Tag.SKIP_PAGE常量的情况。

JspFragment类

WEB容器在处理简单标签的标签体式,会把标签容器用一个JspFragment对象表示,并调用标签处理对象的setJspBody()把JspFragment对象传递给标签处理器对象。

getJspContext():用于返回代表调用页面的JspContext对象

public abstract void invoke(java.io.Writer out):

1、用于执行JspFragment对象所代表的JSP代码片段

2、参数out用于指定将JSpFragment对象执行结果写入到那个输出流对象中,如果传递非参数out的值为null,则将执行结果写入到JspContext.getOut()返回的输出流对象中。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics