自定义简单jsp标签

jstl四大标签库
核心标签库core
格式化标签库fmt
还有两种已经过时的标签库:数据库标签库sql和xml标签库xml
其中最常用的就是jstl的核心标签库core

自定义标签的步骤
1.创建标签处理类
2.创建tld文件,并对文件进行部署

首先javaweb提供了一个用于自定义标签的接口SimpleTag,该接口中定义了五个用于处理自定义标签的方法,这个接口与servlet接口类似,其中包含了setParent(JspTag),setJspBody(JspFragment),setJspContext(JspContext),doTag()这四个周期方法,doTag()方法会在三个set方法执行之后才会被tomcat调用,与servlet相同,这也是一个单例对象

与servlet相同,javaweb同样也提供了一个SimpleTagSupport来实现SimpleTag这个接口,SimpleTagSupport类中已经将SimpleTag接口中提供的抽象方法进行封装,用户在创建自定义标签处理类的时候直接继承该类,并书写相关的逻辑,便可完成简单的自定义标签处理类

创建一个类似<c:if test=""></c:if>功能的自定义标签
首先创建标签处理类,重写doTag()方法
MyIfTag.java

public class MyIfTag extends SimpleTagSupport{
	private boolean test;          //标签中的属性test
	private void setTest(boolean test){
		this.test = test;
	}
	@Override
	public void doTag() throws JspException,IOException{
		if(test) {            //当传入的test为true时,执行标签体内容
			this.getJspBody().invoke(this.getJspContext().getOut());
		}	
	}
}

为保证客户端访问不到该tld文件,需在WEB-INF下创建tld文件
tld文件中配置

<tag>
	<name>myIfTag</name>         //自定义标签名称,类似if
	<tag-class>自定义标签处理类的路径</tag-class>      
	<body-content>scriptless</body-content>         //指定标签内容
</tag>

最后在jsp页面中直接导入标签库

<%@ taglib prefix="my" uri="工程中tld文件的路径"%>

jsp页面中引用自定义标签

<my:myIfTag test="true">             //当test属性值为true时,便执行标签体中的内容
	${pageContext.getRequest().contextPath}
</my:myIfTag>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值