自定义jsp标签通常是为了复用,比如相同的功能不需要在不同的页面书写同样的代码,方便页面代码的维护;自定义标签是用户定义的jsp语言元素,创建自定义标签的语法如“<ex:hello /> ”。
自定义标签是用户定义的jsp语言元素。当jsp页面包含一个自定义标签时将被转化为servlet,标签转化为对被 称为tag handler的对象的操作,即当servlet执行时web container调用那些操作。自定义jsp标签通常是为了复用,比如相同的功能不需要在不同的页面书写同样的代码,方便页面代码的维护。
推荐课程:java教程。
jsp标签扩展可以让你创建新的标签并且可以直接插入到一个jsp页面。 jsp 2.0规范中引入simple tag handlers来编写这些自定义标记。
你可以继承simpletagsupport类并重写的dotag()方法来开发一个最简单的自定义标签。
创建hello标签
接下来,我们想创建一个自定义标签叫作<ex:hello>,标签格式为:
<ex:hello />
要创建自定义的jsp标签,你首先必须创建处理标签的java类。所以,让我们创建一个hellotag类,如下所示:
package com.runoob;import javax.servlet.jsp.tagext.*;import javax.servlet.jsp.*;import java.io.*;public class hellotag extends simpletagsupport { public void dotag() throws jspexception, ioexception { jspwriter out = getjspcontext().getout(); out.println(hello custom tag!); }}
以下代码重写了dotag()方法,方法中使用了getjspcontext()方法来获取当前的jspcontext对象,并将hello custom tag!传递给jspwriter对象。
编译以上类,并将其复制到环境变量classpath目录中。最后创建如下标签库:<tomcat安装目录>webapps\root\web-inf\custom.tld。
<taglib> <tlib-version>1.0</tlib-version> <jsp-version>2.0</jsp-version> <short-name>example tld</short-name> <tag> <name>hello</name> <tag-class>com.runoob.hellotag</tag-class> <body-content>empty</body-content> </tag></taglib>
接下来,我们就可以在jsp文件中使用hello标签:
<%@ taglib prefix="ex" uri="web-inf/custom.tld"%><html> <head> <title>a sample custom tag</title> </head> <body> <ex:hello/> </body></html>
以上程序输出结果为:
hello custom tag!
以上就是jsp自定义标签有什么用的详细内容。