07_javaweb之自定义标签

四、自定义标签
1.传统标签
1).写一个类去实现Tag接口
2).写一个tld文件描述写好的标签处理器类
2.简单标签
1).开发步骤
1'.写一个类去实现simpletag接口,也可以去继承simpletag的默认实现类simpleTagSupport,覆盖父类
中的doTag方法,在其中写处理的代码
2'.写一个tld文件描述
2).简单标签的执行过程
1'.每一个简单标签被使用到时,都会去创建一个简单标签处理类对象
2'.创建出来后调用setJspContext方法将代表当前jsp页面的JspContext对象传入
3'.检查是否有父标签,如果有父标签则调用setParent方法将父标签对象传入
4'.如果当前标签具有属性,则调用属性对应的setXXX方法,将属性设置到标签处理器类中
5'.如果标签具有标签体,则调用setJspBody方法,将代表标签体的JSPFragment对象传入
6'.最终调用doTag方法执行简单标签要执行的操作
3).简单标签实现基本功能
控制标签体是否执行 c:if
控制标签之后的剩余页面是否执行
控制标签体重复执行 c:foreach
控制标签体修改后输出 c:out
4).开发带有属性的标签
1'.在标签体处理类中,写一个javabean属性,提供setXXX方法
2'.在tld文件中描述这个属性
<tag>
<!-- 指定标签的名字,在jsp页面中使用这个名字调用此标签 -->
<name>if</name>
<!--标签处理器类-->
<tag-class>com.itheima.tag.ItheimaIF</tag-class>
<!--标签体类型,JSP表示任意jsp内容;scriptless表示除了java源码外的任意jsp内容;
empty表示空标签体;tagdepedent表明当前标签的标签体是给后台使用的,不进行任何输出-->
<body-content>scriptless</body-content>
<!--对属性进行描述-->
<attribute> 
<!--属性的名称-->
<name>test</name> 
<!--属性是否是必须存在的-->
<required>true</required>
<!--属性是否支持el-->
<rtexprvalue>true</rtexprvalue>
<!--属性的java类型-->
<type>boolean</type>
</attribute>
</tag>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值