taglib tagdir(taglibs)

生活百科 2023-04-30 18:08生活百科www.xingbingw.cn

taglib tagdir(taglibs),本文通过数据整理汇集了taglib tagdir(taglibs)相关信息,下面一起看看。

读完《jsp设计》 后深深为大师的功力折服。这篇笔记就当是个。 所有代码在win2000 tomcat 4.1.17下通过。

我刚开始使用java,有不当之处,请高手多指教。

第一章怎样使用Taglib一、第一种方法仅声明TLD位置在jsp文件头部,声明

% @ taglib uri=/we b-INF/tlds/orataglib _ 1 _ 0。TLD前缀=ora %

这样就好的了

二、第二种方法定义库名称在jsp文件头部,声明

%@个标记库uri=/orataglib前缀=ora %

在网络。可扩展标记语言添加如下声明

taglib

标记库uri/orataglib/标记库上呼吸道感染

taglib-location/we b-INF/tlds/orataglib _ 1 _ 0。TLD/塔格里卜-位置

/taglib

在tld里加上

简称ora/简称

uri /orataglib /uri

如果类不多,用tld引用就行了。否则就用库形式,便于升级,改动。

第二章编写最简单的Taglib一、编写HelloWorldTag类打包我的标签

导入Java。io。io异常;

导入javax。servlet。JSP。;

导入javax。servlet。JSP。tagext。;

公共类HelloWorldTag扩展标签支持{

public int doStartTag()抛出JspTagException {

返回EVAL _正文_包含;

}

public int doEndTag()抛出JspTagException {

尝试{

pageContext.getOut().写(‘Hello World’);

}

catch (IOException ex){

抛出新的JSP tage异常('错误!);

}

返回EVAL _页面;

}

}

二、编写相应TLD文件取名为hello.tld

?可扩展标记语言版本='1.0 '编码='ISO-8859-1 '?

!文档类型标记库

PUBLIC '-//太阳微系统公司//DTD JSP标记库1.1//EN '

/J2EE/dtds/we b-JSP标记库_ 1 _ 1。' dtd '

taglib

tlib版本1.0/tlib版本

JSP版本1.1/JSP版本

简称我的标签/简称

标签

名字你好/名字

标签类mytag .HelloWorldTag /tagclass

正文内容空/bodycontent

/标签

/taglib

三、编写testtag1.jsp进行调用%@页语言='java'%

% @ taglib uri='/we b-INF/tlds/hello。TLD的前缀='我的标签' %

超文本标记语言

身体

你好/你好

/body

/html

四、注意点1.实际生成的类在包我的标签内,要把该包放到WEB-INF\classes目录下

2 .顶级域名文件里的简称就是jsp里的前缀

3 .顶级域名文件里的标签标签中,名称表示实际类的一个别名,供jsp页面引用标签类表示实际的类

4。把tld文件放到WEB-INF下的顶级域名文件夹内。

1.必须导入javax。servlet。JSP 和javax.servlet.jsp.tagext.两个包

2.让自己的类继承标签支持类,并且实现多斯达塔格或doEndTag方法。

3.编写tld标签,只需指定简称标签,和编写具体的类标签标签,其他的可以复制粘贴。

4.在jsp页面是用导入tld的办法。然后用前缀类名的方式调用。

第三章编写带身体的Taglib一、编写HelloBodyTag类打包我的标签

导入Java。io。;

导入javax。servlet。JSP。;

导入javax。servlet。JSP。tagext。;

公共类HelloBodyTag扩展BodyTagSupport {

public int doAfterBody()抛出JSP异常{

正文内容BC=getBodyContent();

JSP writer out=getPreviousOut();

尝试{

出去。写(公元前。getstring());

}

catch (IOException e) {} //忽略

返回跳过_正文

}

}

二、修改tld文件加入

标签

名称HelloBodyTag /name

标签类mytag .HelloBodyTag /tagclass

/标签

三、 写testtag2.jsp调用%@页语言='java'%

% @ taglib uri='/we b-INF/tlds/hello。TLD的前缀='我的标签' %

超文本标记语言

身体

你好,BodyTag!/mytag:HelloBodyTag

/body

/html

1.类最好继承BodyTagSupport

2.正文内容和JspWriter都是容器内的对象

3.GetPreviousOut表示外层输出。对于某个标签来说,外层输出就是jsp页面。对于某个嵌套的标签,外层输出就是父标签

第四章让行为互相协作一、编写互相协作的行为编写这样的标签,在jsp页面调用时

我的标签:helloMan我的标签:param name=Diego/mytag:param/mytag:你好伙计

会得到你好,迭戈的值。

二、编写两个标签类1.编写ParamTag类

打包我的标签

导入Java。网。;

导入javax。servlet。JSP。;

导入javax。servlet。JSP。tagext。;

公共类ParamTag扩展了标签支持{

私有字符串名称;

公共void集合名称(字符串名){

this.name=name

}

public int doEndTag()抛出JSP异常{

tag parent=findAncestorWithClass(this,param parent。类);

param parent param parent=(param parent)parent;

paramParent.setParam(名称);

返回EVAL _页面;

}

公共无效发布(){

名称=空

超级棒。发布();

}

}

2.编写HelloParamTag类

打包我的标签

导入Java。io。;

导入javax。servlet。http。;

导入javax。servlet。JSP。;

导入javax。servlet。JSP。tagext。;

公共类HelloParamTag扩展标签支持实现双亲{

私有字符串名称;

公共void setParam(字符串名称){

this.name=name

}

public int doStartTag() {

返回EVAL _正文_包含;

}

public int doEndTag()抛出JSP异常{

JSP编写器out=pagecontext。滚();

尝试{

出去。打印(' hello ' this。姓名);

}

catch(IOException e){

}

返回EVAL _页面;

}

公共无效发布(){

名称=空

超级棒。发布();

}

}

3.编写辅助的接口双亲的

打包我的标签

公共接口双亲{

void setParam(字符串名);

}

三、修改tld文件标签

姓名你好男人/姓名

标签类mytag .HelloParamTag /tagclass

/标签

标签

名称参数/名称

标签类mytag .ParamTag /tagclass

属性

姓名/名称

必填假/必填

/属性

/标签

四、编写testtag3.jsp进行测试%@页语言='java'%

% @ taglib uri='/we b-INF/tlds/hello。TLD的前缀='我的标签' %

超文本标记语言

身体

mytag:hello man mytag:param name=' Diego '/mytag:param/mytag:hello man

/body

/html

五、设计思路1.嵌套行为中,一般父标签实现业务逻辑,子标签为父标签提供参数

2.子标签通过findAncestorWithClass找到父标签,为了达到通用化,设计接口双亲的

3.在父标签内实现了接口的setParam方法,子标签通过调用该方法,设置了父标签的参数

4.父标签实现业务逻辑。打印喂

本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。

更多taglib tagdir(taglibs)相关信息请关注本站,本文仅仅做为展示!

Copyright@2015-2025 www.xingbingw.cn 性病网版板所有