jsp自定义标签(一)

1、jsp自定义标签库的目的

我们写代码的时候,很多类似重复的很繁琐的代码,为了节省写代码的时间,减少代码冗余,我们可以使用自定义jsp标签来制作符合我们要求的标签,使代码更简洁,可读性更强。

2、jsp自定义标签库的用法

2.1需要的环境

jar包:
在这里插入图片描述
标签库的运行离不开tld文件,与web.xml文件在同一目录下:
在这里插入图片描述
要使用的标签必须在页面头部导入:
在这里插入图片描述
prefix的值是对应的tld文件中的short-name的值,uri的值是对应的tld文件的uri的值:
在这里插入图片描述

2.2 标签的语言特点

一般的标签:

	<开始标签 属性="属性值">标签体</结束标签>

空标签:

	1.<开始标签/> 例如:<br/><hr/> 在这类标签中‘/’代表结束
	2.没有标签体的空标签:<开始标签></结束标签>

标签分为三种:数据标签、ui标签、控制标签,以下让我们用c标签来说明这三种标签。

2.3 探究c标签

2.3.1 c标签的简单实例

set标签 设置值 页面无输出 属于数据标签 操作数据的标签

<c:set var="name" value="zs" ></c:set>

由于set标签无输出,我们配合out标签看效果,out标签 属于ui标签 在界面上看得到,展示内容的标签 输出指定值:

<c:out value="${name }"></c:out>

效果图,set标签和out标签都用水平线分开来看,可见set标签无输出但是给name赋值了,out标签输出了set标签赋的值:
在这里插入图片描述
if标签,做判断,test返回值为Boolean类型,true则执行标签体内的内容,false则跳过标签体,属于控制标签,用来做流程控制的标签

<c:if test="true"></c:if>
<c:if test="false"></c:if>

效果图:
在这里插入图片描述

2.3.2 自定义标签的开发及使用步骤

1.创建一个标签助手类 继承了BodyTagSupport类;
2.创建标签库描述文件(tld文件),添加自定义标签的配置;
3.tld文件中设置的标签属性必须和助手类中的属性相对应 且助手类要提供对应的get/set方法;
4.在jsp页面头部通过taglib标签导入tld文件;

2.3.4 jsp自定义标签生命周期

在这里插入图片描述
这张流程图中矩形的表示执行步骤,菱形的表示条件,箭头表示流向;
这张流程图有以下几种执行情况:
1.doStartTag—>SKIP_BODY—>doEndTag;
2.doStartTag—>EVAL_BODY_INCLUDE—>doAfterBody—>SKIP_BODY—>doEndTag;
3.doStartTag—>EVAL_BODY_INCLUDE—>doAfterBody—>EVAL_BODY_AGAIN—>SKIP_BODY—>doEndTag

大白话解释:
首先是实例化标签助手类,然后调用了doStartTag方法,这个方法有两个返回值,一个是SKIP_BODY,跳过主体,直接到doEndTag方法,他也有两个返回值一个是SKIP_PAGE,跳过当前页面的剩余内容,意思是这个页面上这个标签后的内容都不再执行,doEndTag方法另一个返回值EVAL-PAGE,计算页面的后续内容是指页面上这个标签后面的内容也会执行,最后取消引用助手类;回过头来看doStartTag方法另一个返回值EVAL_BODY_INCLUDE,计算标签主体内容并输出意为标签体内容会执行,然后会到doAfterBody方法,这个方法有两个返回值,一个是SKIP_BODY,跳过主体,直接到doEndTag方法,还有一个EVAL_BODY_AGAIN再计算主体一次<

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值