快捷搜索:

利用JSP 2提供的SimpleTagSupport开发自定义标签

自定义标签库并不是 JSP 2 才呈现的,JSP 1.1 版中已经增添了自定义标签 库规范,自定义标签库是一种异常优秀的体现层组件技巧。经由过程应用自定义标签 库,可以在简单的标签中封装繁杂的功能。

为什么要应用自定义标签呢?主如果为了取代丑陋的 JSP 脚本。在 HTML 页 面中插入 JSP 脚本有如下几个坏处:

JSP 脚本异常丑陋,难以涉猎。

JSP 脚本和 HTML 代码稠浊,掩护资源高。

HTML 页面中嵌入 JSP 脚本,导致美工职员难以介入开拓。

出于以上三点的斟酌,我们必要一种可在页面中应用的标签,这种标签具有和 HTML 标签类似的语法,但由可以完成脚本的功能——这种标签便是 JSP 自 定义标签。

在 JSP1.1 规范中开拓自定义标签库对照繁杂,JSP 2 规范简化了标签库的开 发,在 JSP 2 中开拓标签库只需如下几个步骤:

开拓自定义标签处置惩罚类;

建立一个 *.tld 文件,每个 *.tld 文件对应一个标签库,每个标签库对应多 个标签;

在 JSP 文件中应用自定义标签。

开拓自定义标签类

标签库和实际开拓

标签库是异常紧张的技巧,平日来说,初学者、通俗开拓职员自己开拓标签库 的时机很少,但假如盼望成为高档法度榜样员,或者盼望开拓通用框架,就必要大年夜量 开拓自定义标签了。所有的 MVC 框架,如 Struts 2、SpringMVC、JSF 等都供给 了富厚的自定义标签。

当我们在 JSP 页面应用一个简单的标签时,底层实际上由标签处置惩罚类供给支 持,从而可以应用简单的标签来封装繁杂的功能,从而使团队更好地协作开拓( 能让美工职员更好地介入 JSP 页面的开拓)。

早期 JSP 自定义标签类开拓历程略微繁杂一些,但 JSP 2 已经简化了这个过 程,它只要自定义标签类都必须承袭一个父类: javax.servlet.jsp.tagext.SimpleTagSupport,除此之外,JSP 自定义标签类还 有如下要求。

假如标签类包孕属性,每个属性都有对应的 getter 和 setter 措施。

重写 doTag() 措施,这个措施认真天生页面内容。

下面开拓一个最简单的自定义标签,该标签认真在页面上输出 HelloWorld。

// 标签处置惩罚类,承袭 SimpleTagSupport 父类

public class HelloWorldTag extends SimpleTagSupport

{

// 重写 doTag 措施,该措施在标签停止天生页面内容

public void doTag()throws JspException,

IOException

{

// 获取页面输出流,并输出字符串

getJspContext().getOut().write("Hello World");

}

}

上面这个标签处置惩罚类异常简单,它承袭了 SimpleTagSupport 父类,并重写 doTag() 措施,而 doTag() 措施则认真输出页面内容。该标签没有属性,是以无 须供给 setter 和 getter 措施。

您可能还会对下面的文章感兴趣: