首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 操作系统-> Windows xp教程
Taglib原理和实现-JSP教程,Java技巧及代码
作者:网友供稿 点击:64
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 

tag究竟是什么?如何实现一个tag?     一个tag就是一个普通的java类,它惟一特别之处是它必须继承tagsupport或者bodytagsupport类。这两个类提供了一些方法,负责jsp页面和你编写的类之间的交互,例如输入,输出。而这两个类是由jsp容器提供的,无须开发人员自己实现。换句话说,你只需把实现了业务逻辑的类继承tagsupport或者bodytagsupport,再做一些特别的工作,你的类就是一个tag。并且它自己负责和jsp页面的交互,不用你多操心。     “特别的工作”通常有以下几个步骤:     1)提供属性的set方法,此后这个属性就可以在jsp页面设置。以jstl标签为例 c:out value=""/,这个value就是jsp数据到tag之间的入口。所以tag里面必须有一个setvalue方法,具体的属性可以不叫value。例如setvalue(string data){this.data = data;}    这个“value”的名称是在tld里定义的。取什么名字都可以,只需tag里提供相应的set方法即可。     2)处理 dostarttag 或 doendtag 。这两个方法是 tagsupport提供的。 还是以c:out value=""/为例,当jsp解析这个标签的时候,在“<”处触发 dostarttag 事件,在“>”时触发 doendtag 事件。通常在 dostarttag 里进行逻辑操作,在 doendtag 里控制输出。    3)编写tld文件。    4)在jsp页面导入tld。这样,你的jsp页面就可以使用自己的tag了。     通常你会发现自己绝大多数活动都集中在 dostarttag 或 doendtag 方法里。确实如此,熟悉一些接口和类之后,写taglib很容易。正如《jsp设计》的作者所言:里面的逻辑稍微有点复杂,但毕竟没有火箭上天那么难。     一个简单的例子:outputtag

package diegoyun;import javax.servlet.jsp.jspexception;import javax.servlet.jsp.jspwriter;import javax.servlet.jsp.tagext.tagsupport;/** * @author chenys */public class outputtag extends tagsupport{ private string name=null; public void setname(string name) { this.name = name; } public int dostarttag() throws jspexception{ try { jspwriter out = pagecontext.getout(); out.print("hello! " + name); } catch (exception e) { throw new jspexception(e); } return eval_page; }}
    简要说明:    1 如何输出到jsp页面:调用jspwriter jspwriter out = pagecontext.getout();out.print......记住这个方法就可以了。    2 输出后如何作处理,函数会返回几个值之一。eval_page 表示tag已处理完毕,返回jsp页面。还有几个值,例如 eval_body_again 和eval_body_include等,后面我们会作讨论。     编写tld
<?xml version="1.0" encoding="iso-8859-1" ?><!doctype taglib public "-//sun microsystems, inc.//dtd jsp tag library 1.2//en" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd"><taglib> <tlib-version>1.0</tlib-version> <jsp-version>1.2</jsp-version> <short-name>diego</short-name> <!--outputtag--> <tag> <name>out</name> <tag-class>diegoyun.outputtag</tag-class> <body-content>empty</body-content> <attribute> <name>name</name> <required>false</required> <rtexprvalue>false</rtexprvalue> </attribute> </tag></taglib>
    在web-inf下新建tlds文件夹,把这个文件取名为diego.tld,放到tlds文件夹下。路径应该这样:web-inf\tlds\diego.tld     关于tld的简单说明:    short-name:taglib的名称,也称为前缀。比如“c:out value=""/” 里的“c”    name:tag的名字。例如“c:out value=""/” 里的"out”,我们的类也取名为out,由于有前缀作区分,不会混淆    tag-class:具体的tag类。带包名    body-content:指tag之间的内容。例如c:out value="" ...... /c 起始和关闭标签之间就是body-content。由于没有处理body-content,所以上面设为empty    “attribute”里的name:属性名字。例如c:out value=""/里的value。名字可任意取,只要类里提供相应的set方法即可。    required:是否必填属性。    rtexprvalue:是否支持运行时表达式取值。这是tag的强大功能。以后我们会讨论。暂时设为false     编写jsp页面
<%@ page language="java"%><%@ taglib uri="/web-inf/tlds/diego.tld" prefix="diego"%><html><body>test tag:<diego:out name="diegoyun"/></body></html>
    我的编程环境是eclipse+tomcat.启动服务器,如果一切按照上面步骤的话,就能看到 test tag: hello! diegoyun 字样。最简单的tag就这么出来了。并不难,是不是?(t111)
文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·用ghost完美克隆windows xp+sp2
·[ASP.NET]如何在客户端调用服务端代码-.NET教程,Asp.Net开发
·安装windows sp2后 程序为何不能运行
·windows xp系统虚拟内存的标准设置方法
·SQL Server端口更改后的数据库连接方式-ASP教程,数据库相关
·Java学生成绩管理系统源代码-JSP教程,Java技巧及代码
·精华的微软文章".NET 数据访问架构指南"-.NET教程,数据库应用
·系统高手 xp最新应用技巧六招
·windows xp操作系统疑难问题巧解决
·SQL Server 调用C#。net写的Dll ,(分享我的HelloWorld测验)-.NET教程,C#语言
最新文章
·谈谈三年来做站的经验_站长心得
·用户的体验习惯化与去习惯化_站长心得
·web2.0网站需要借鉴的七种传统赢利模式_站长心得
·网页布局的位置重心与位置间的对比关系_站长心得
·google adsense公益广告的替代方法_google推广
·google adsense全面解析_google推广
·2006年关于google等的15项预测_google推广
·google搜索技巧_google推广
·有趣的网上搜索_google推广
·网站制作简易流程介绍_站长心得
相关主题
  • Taglib 原理和实现之嵌套和属性读取-JSP教程,资料/其它
  • Taglib原理和实现之循环的Tag-JSP教程,资料/其它
  • Taglib指令-JSP教程,Jsp/Servlet
  • Taglib指令-JSP教程,Application/Applet
  • 西部数码虚拟主机

    友情链接
    CNNIC 西部数码
    万网 自助建站
    虚拟主机 asp空间
    域名注册 域名
    域名申请 主页空间
    论坛空间 网站空间
    国际域名 虚拟空间
    空间租用 DDOS防火墙
    成都主机托管 四川主机托管
    主机租用 服务器租用
    网站目录 自助建站
    虚拟主机 网址大全
    软件下载
    自助链接
    虚拟主机资讯 特价虚拟主机
    版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
    关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
    发表评论 打印  刷新     关闭