首页 > 编程知识 正文

tag文件如何创建,jsp中insDoc

时间:2023-05-06 02:41:42 阅读:138034 作者:1225

自定义标签包括以下三个步骤:

1 .继承javax.servlet.JSP.tag ext.*中提供的一些标记类,例如tag、TagSupport、BodyTagSupport和simpletagsupport(JSP2.0 )

2 .在TLD文件中设置标记库信息以及标记和实现类的映射。

3 .在JSP文件中引用自定义标记。

标签API

Tag接口

doEndTag () :为当前标签实例执行结束标签。 doStartTag ) )执行后调用

doStartTag () :为当前标签实例执行开始标签。

getParent (:获取当前标记的父标记

release () :释放当前标签的状态

设置页面上下文(pagecontext ) :用于设置当前选项卡的页面

setparent(tag ) :设置当前标记的父标记

TagSupport类

TagSupport类是实现Tag接口的模板类。 实现Tag接口的大多数方法,用户只需实现doStartTag (和doEndTag )方法。

简单标签接口(JSP2.0 ) )。

JSP2.0的接口比Tag接口更简单。

doTag () :执行当前选项卡中的所有处理任务。

getParent (:获取当前标记的父标记。

setjspbody(JspFragment ) :提供当前标记的实体是JSPfragment对象

setjspcontext(JSPcontext ):JSP页的

setparent(JSPtag ) :设置当前标记的父标记。

SimpleTagSupport类(JSP2.0 ) )。

SimpleTagSupport类是实现SimpleTag接口的模板类。 实现SimpleTag接口的大多数方法,用户只需实现doTag ()方法。

tld标签库描述文件

tld都被称为Tag

库描述,即标记库描述文件。

tld文件用于设置标记库的基本信息。

taglib的主要元素

taglib.tld? XML version=' 1.0 ' encoding=' utf-8 '?

xmlns=' http://Java.sun.com/XML/ns/J2EE '

xmlns 3360 xsi=' http://www.w3.org/2001/XML架构-instance '

xsi :方案位置=' http://Java.sun.com/XML/ns/J2EE

web-jsptaglibrary_2_0.xsd '

version='2.0 '

1.0

2.0

标签

3358 notes.javaee.JSP.com/taglib

私有标记

版权所有

notes.javaee.JSP.taglib.copyright

JSP

版权标签。

lshortname表示推荐的prefix。

luri表示浏览此标记库时使用的uri。

ltag表示定义标签的信息。

其中,tag可以设置的属性如下: 属性说明

name定义属性的名称。 每个标签的属性名称必须是唯一的。

tagclass指定要映射的Java类。

required指定属性是必需的还是可选的。 如果设置为false,则为可选。

rtexprvalue声明在执行表达式时声明标签属性是否有效。

type定义此属性的Java类类型。 默认值为字符串。

描述描述信息。

如果声明了fragment属性,则将属性值视为JspFragment。

bodycontent表示标签本身的限制,取empty、JSP、tagdependent个值

empty :不允许标签体的存在。 JSP :允许标签体的存在。 tagdependent :允许标记主体存在,但不执行标记主体内的JSP代码。

如果tld文件位于/WEB-INF/下,则Tomcat会自动加载tld文件中的标记库。 如果在其他位置,可以在web.xml中设置。

3358 notes.javaee.JSP.com/taglib

/WEB-INF/taglib.tld

或直接在JSP中使用

实例

使用TagSupport自定义标签

1 .继承标签API

定义继承TagSupport类的HelloTag类。

hello tag.Java : package notes.javaee。

jsp.taglib;

importjavax.servlet.jsp.JspException;

importjavax.servlet.jsp.tagext.TagSupport;

publicclassHelloTagextendsTagSupport {

privatestaticfinallongserialVersionUID= -8828591126748246256L;

privateStringname;

@Override

publicintdoEndTag()throwsJspException {

try{

this.pageContext.getOut().println("Hello, "+name);

}catch(Exceptione) {

thrownewJspException(e);

}

returnEVAL_PAGE;

}

publicString getName() {

returnname;

}

publicvoidsetName(Stringname) {

this.name=name;

}

}

2.在tld中配置标签库信息

在/WEB-INF下新建taglib.tld文件。

指明推荐使用的prefix为taglib。

定义要引用的标签信息。指明标签名,指明映射的Java类,和前面的对应。

然后定义这个标签的属性。因为前面Java类中的属性为name,这里也要对应上。

taglib.tld:<?xmlversion ="1.0"encoding="UTF-8" ?>

xmlns="http://java.sun.com/xml/ns/j2ee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee

web-jsptaglibrary_2_0.xsd"

version="2.0">

1.0

2.0

taglib

http://notes.javaee.jsp.com/taglib

Private Taglib

hello

notes.javaee.jsp.taglib.HelloTag

empty

Hello tag with parameters.

name

true

true

3.在jsp文件中引用标签

前面在tld文件中配置了各个关键信息,现在就可以直接在jsp文件中使用了。

首先,需要在jsp文件中引入标签库文件。这里和标准标签库JSTL一样,使用taglib关键字来说明要引入的是标签库。uri是引入地址,prefix是标签库关键字。

由于前面定义的标签name为hello,所以可以使用的标签名为:prefix+name,即:taglib:hello。

Hello.jsp:

Insert title here

结果:

使用SimpleTagSupport自定义标签(JSP2.0)

1.继承标签API

定义一个HelloTag类,继承SimpleTagSupport类。

PersonTag.java:packagenotes.javaee.jsp.taglib2;

importjava.io.IOException;

importjavax.servlet.jsp.JspException;

importjavax.servlet.jsp.tagext.SimpleTagSupport;

publicclassPersonTagextendsSimpleTagSupport {

privateStringname;

privateStringsex;

privateintage;

@Override

publicvoiddoTag()throwsJspException, IOException {

this.getJspContext().getOut().write(

"[Person Info]name: "+name+", sex: "+sex+", age:"+age);

}

publicString getName() {

returnname;

}

publicvoidsetName(Stringname) {

this.name=name;

}

publicString getSex() {

returnsex;

}

publicvoidsetSex(Stringsex) {

this.sex=sex;

}

publicintgetAge() {

returnage;

}

publicvoidsetAge(intage) {

this.age=age;

}

}

2.在tld中配置标签库信息

在/WEB-INF下新建taglib.tld文件。

关键配置信息基本和使用TagSupport自定义标签范例中一样。但是由于对应Java类中有3个属性,需要一一对应上。

taglib.tld:<?xmlversion ="1.0"encoding="UTF-8" ?>

xmlns="http://java.sun.com/xml/ns/j2ee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee

web-jsptaglibrary_2_0.xsd"

version="2.0">

1.0

2.0

taglib

http://notes.javaee.jsp.com/taglib

Private Taglib

person

notes.javaee.jsp.taglib2.PersonTag

empty

person info tag

name

true

true

sex

true

true

age

true

true

3.在jsp文件中引用标签

引用标签方式和使用TagSupport自定义标签范例一样。

personTag.jsp:

Insert title here

结果:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。