JSP自建标签_2_传统标签

自定义标签

1.自定义标签技术出现的原因:

虽然有第三方组织提供了很多标签,但是这些都是一些通用标签,开发中常常需要根据业务需求使用jsp页面,这个时候通用的标签就不够用了,我们需要自己去开发标签库。

2.标签处理类生命周期

2.1传统标签处理类的生命周期

传统标签处理类在标签被第一次使用时创建实例,从此驻留内存为后续请求提供服务,其中每次标签执行都会依次执行setPageContext(PageContext pc) 、setParent(Tag t) 、doStartTag() 、doEndTag() 、~在服务器停止之前调用release()

 

注:doStartTag doEndTag方法来分别处理发现开始标签和发现结束标签时的代码,doStartTag可以通过返回值来控制标签体是否允许执行,doEndTag方法里可以通过返回值控制标签之后的剩余页面是否允许执行

     

<span style="color:#000000;">private PageContext pc = null;

	public int doEndTag() throws JspException {
		//EVAL_PAGE -- 结束标签之后的剩余页面需要去执行
		//SKIP_PAGE -- 结束标签之后的剩余页面不要去执行
		return 0;
	}

	public int doStartTag() throws JspException {
		try {
			String ip = pc.getRequest().getRemoteAddr();
			pc.getOut().write(ip);
		} catch (IOException e) {
			e.printStackTrace();
		}
		//Eval_Body_Include -- 开始标签之后的标签体需要执行
		//Skip_Body -- 开始标签之后的标签体不需要执行
		return 0;
	}

	public Tag getParent() {
		return null;
	}

	public void release() {

	}

	public void setPageContext(PageContext pc) {
		this.pc = pc;
	}

	public void setParent(Tag t) {
		
	}</span>

 注:这些函数的返回值可以控制标签的输出。

传统标签的这种开发方式,需要我们分析发现开始标签和发现结束标签时都需要执行什么代码,还需要分析到底要返回什么样的标签体控制程序执行,相对来说相当的繁琐.

 

编写方法:传统标签:

        (1)写一个类实现Tag接口

        (2)写一个tld文件,描述写好的类

        (3)在jsp页面中引入tld文件,就可以在jsp页面中使用自定义标签了

<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.0" xmlns="http://java.sun.com/xml/ns/j2ee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd">
	<tlib-version>1.0</tlib-version>
	<short-name>MyTag</short-name>
	<uri>http://www.itheima.com/MyTag</uri>
	<tag>
		<name>showip</name>
		<tag-class>com.itheima.tag.ShowIpTag</tag-class>
		<body-content>empty</body-content>
	</tag>
</taglib>


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

良之才-小良

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值