taglib tagdir(taglibs)
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)相关信息请关注本站,本文仅仅做为展示!