码迷,mamicode.com
首页 > Web开发 > 详细

JSP笔记——7.自定义标签

时间:2015-09-03 14:08:16      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:jsp

jsp标签具有与html标签一样的格式,可以用来代替jsp中的Java脚本,使代码简介。使用自定义标签之前需要建立一个*.tld文件,每个文件对应一个标签库,里面可以包含很多的自定义标签。

每一个标签都必须由一个继承了SimpleTagSupport类的实现类来实现。类里面的属性必须有get与set方法。需要重写doTag方法,实际上此方法真正完成标签的工作。


创建tld文件 

创建的时候最好找一个现成的tld文件,复制进去然后修改uri(此uti能够告诉jsp页面,这个前缀引导的标签应该与哪个tld文件对应),再在tag子元素下定义标签。

  • taglib有如下三个子元素:

  • tlib-version:指定标签库实现版本,没什么用

  • short-name:默认短名,也没什么用

  • uri:标签库的唯一标示

  • dynamic-attributes:指定标签是否支持动态属性,只有定义动态属性标签的时候才需要。

  • tag:定义标签库的地方。每个tag中可以包含name,tag-class与body-content。body-content中可以设置如下四个值:

  1. tagdependent:指定标签处理类自己负责处理标签体

  2. empty:指定该标签只能作为空标签

  3. scriptless:指定标签体可以使静态html元素,表达式语言,不能有脚本

  4. JSP:指定可以使用jsp脚本(jsp2中不能为jsp)


使用标签库

使用标签库要先用taglib编译指令导入,要写uti跟前缀。使用时直接用前缀加: 加标签名即可。


带属性的标签

配置的时候需要使用attribute子元素。每个属性对应一个sttribute。每个attribute里面需要配置name(属性名字),required(是否为必需),fragment(是否支持jsp脚本)。配置好了之后,在使用的时候,就会提示你输入指定的属性了。这里可以把标签比作是方法,通过写一个方法名,就可以调用该方法了。导入taglib就相当于导入jar包。写一个前缀就相当于是告诉程序,我要用这个包里面的方法。


带标签体的标签

这种标签可以在里面镶嵌其他内容完成诸如逻辑运算,循环等。一般要求body-content为scriptless。


动态属性标签

需要实现DynamicAttributes接口,重写setDynamicAttribute类。配置的时候需要用dynamic-attributes来标注支持动态属性。在使用标签的时候可以随意地添加属性跟属性值。似乎程序会自动认定=前面就是属性名,如果有了,那好,就去找set方法,如果没有,ok,这是一个动态生成的属性,赶紧给创建一个。

本文出自 “指尖轻飞” 博客,谢绝转载!

JSP笔记——7.自定义标签

标签:jsp

原文地址:http://mengcao.blog.51cto.com/9395052/1691056

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!