您现在的位置是:首页 > 网络趣梗网络趣梗
taglib tagdir(taglibs)
admin2022-12-02 17:32:41网络趣梗77人已围观
简介taglibtagdir(taglibs),本文通过数据整理汇集了taglibtagdir(taglibs)相关信息,下面一起看看。读完《jsp设计》后深深为大师的功力折服。这篇笔记就当是个总结。所有代码在win2000tomcat4.1.17下通过。我刚开始使用java,有不当之处,请高手多指教。第一章:怎样使用Taglib一、第一种方
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)相关信息请关注本站,本文仅仅做为展示!
很赞哦! ()
相关文章
- 三年级作文我的小妹妹300字(我的妹妹三年级三百字作文
- 300字优秀写景作文 我的校园怎么写(300字优秀写景作文
- 《我和我的祖国》高远人物原型是谁演的(我和我的祖国
- in front of的用法总结(in front of和in the front of
- always是什么意思中文翻译是什么意思(alwaysbehere是
- My family day(My day我的一天)
- brother打印机更换墨粉盒(brother打印机更换墨粉盒清
- spaghetti 读音(spaghetti,怎么读)
- python求整数n阶乘函数(python编写一个求整数n阶乘(n!
- HEYBIG是什么品牌(heybig是哪个国家牌子)
随机图文
黑龙江邮箱地址是多少(黑龙江电子邮件是多少)
黑龙江邮箱地址是多少(黑龙江电子邮件是多少),本文通过数据整理汇集了黑龙江邮箱地址是多少(黑龙江电子邮件是多少)相关信息,下面一起看看1992年故宫灵异事件揭秘北京故宫十大灵异事件(1992年北京故宫灵异事件是怎么回事)
1992年故宫灵异事件揭秘北京故宫十大灵异事件(1992年北京故宫灵异事件是怎么回事),新营销网红网本栏目通过数据整理汇集了1992年故宫灵异事件揭秘北京故宫十大灵异事件(1992年北京故宫灵异事件是怎么回事)相关信息,下面一起看看2021手游排行榜前十名网络游戏(2021手游排行榜第一名)
2021手游排行榜前十名网络游戏(2021手游排行榜第一名),新营销网红网本栏目通过数据整理汇集了2021手游排行榜前十名网络游戏(2021手游排行榜第一名)相关信息,下面一起看看三亚机场怎么到高铁站(三亚机场到三亚高铁站有多远)
三亚机场怎么到高铁站(三亚机场到三亚高铁站有多远),本文通过数据整理汇集了三亚机场怎么到高铁站(三亚机场到三亚高铁站有多远)相关信息,下面一起看看
留言与评论 (共有 条评论) |