JSP2.0的简单标志库扩展_SimpleTag

原文来处

在jsp1.2时代已经有标记库了, 并且功能强大,但标记库的编程和调用都比较复杂,导致真正使用到WEB开发中的还是不多。JSP2.0推出的简单标记库扩展解决了以上的问题。简单标记库相对JSP1.2中的标记库来说,优点在于: 对后台程序员来说:结构更简单,实现接口更少,可以轻松实现后台程序

  JSP 2.0中加入了新的创建自制标记的API:javax.servlet.jsp.tagext.SimpleTag,该API定义了用来实现简单标记的接口。和JSP 1.2中的已有接口不同的是,SimpleTag接口不使用doStartTag()和doEndTag()方法,而提供了一个简单的doTag()方法。这个方法在调用该标记时只被使用一次。而需要在一个自制标记中实现的所有逻辑过程、循环和对标记体的评估等都在这个方法中实现。从这个方面来讲,SimpleTag可以和IterationTag达到同等的作用。但SimpleTag的方法和处理周期要简单得多。在SimpleTag中还有用来设置JSP内容的setJspBody()和getJspBody()方法。Web容器会使用setJspBody()方法定义一个代表JSP内容的JspFragment对象。实现SimpleTag标记的程序可以在doTag方法中根据需要多次调用getJspBody().invoke()方法以处理JSP内容。对于前台WEB页面制作人员:在JSP1.2时代,Taglib页面调用实际上是比较复杂的,SimpleTag+EL表达式语言极大的简化了Taglib调用,真正达到不懂JAVA的人员也可以轻松编写 JSP页面的目的。

  一个Taglib页面的编写和调用包括三个流程:

  1. 后台程序员编写要被调用的程序

  简单标志扩展实现示例:

  java程序RepeatSimpleTag.java://放到WEB-INF/classes/jsp2/examples/simpletag 下面package jsp2.examples.simpletag;

JSP2.0的简单标志库扩展_SimpleTag

JSP2.0的简单标志库扩展_SimpleTag

  2. 编辑Tag标志描述文件,这个文件要放在WEB-INFjsp2下面,并且这个文件要以tld为 文件结尾。

  repeatTaglib.tld (标志库描述文件,放在WEB-INF下面的jsp2下面)

JSP2.0的简单标志库扩展_SimpleTag

JSP2.0的简单标志库扩展_SimpleTag

JSP2.0的简单标志库扩展_SimpleTag

  使用标签文件(JSP fragment): 使用简单标签扩展机制的另一种简单的方法是通过标签文件。标签文件是一种资源文件,网页作者可以利用它抽取一段JSP代码,通过定制功能来实现代码的复用。换句话说,标签文件允许JSP网页作者使用JSP语法创建可复用的标签库。标签文件的扩展名必须是“.tag”。表面上标签文件文件和jsp1.2中的jsp:include 指令中的包含文件好像是一样的,但实际上还是有一些不同的,标签文件一般功能比较短小 简单而且重复使用率高的一些代码。

  ----------------------------

  一个简单的标签文件 SimpleTag.tag 这个文件放到WEB-INF/tags下面

JSP2.0的简单标志库扩展_SimpleTag

  标签文件(JSP fragment)的基本特点是可以使处理JSP的容器推迟评估JSP标记属性。我们知道一般JSP是首先评估JSP标记的属性,然后在处理JSP标记时使用这些属性,而JSPfragment提供了动态的属性。也就是说,这些属性在JSP处理其标记体时是可以被改变的。标签文件是用文本文件格式(JSP语法)实现自制标记,这也是JSP2.0的一个主要新功能。

  ----------------------------

  标签文件的动态复用 标签文件可以作为模板使用。指令attribute类似于TLD中的<attribute>元素,允许声明 自定义的动作属性。

JSP2.0的简单标志库扩展_SimpleTag

JSP2.0的简单标志库扩展_SimpleTag

  每次设定Tag文件中的相关的属性,而Tag标志文件则根据设定的属性显示相应的结果。可以说在JSP2.0中使用标签库是大大的方便了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值