xml开发自定义标签的步骤

开发步骤

  • 编写相应的标签处理类,可继承simpleTagSupport类或实现simpleTag接口(simpleTagSupport也是simpleTag的实现类),相比而言继承前者更加方便,前者对tomcat中的参数都保存起来并提供Get方法。
import java.io.IOException;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.SimpleTagSupport;
/****
 * 继承simpleTagSupport类的标签处理类
 * @author Administrator
 *它已经把tomcat传递的参数都保存起来了 并且提供了getXX()使用起来更加简单
 */
public class CutomTag2 extends SimpleTagSupport{
	@Override
	public void doTag() throws JspException, IOException {
		getJspContext().getOut().write("**************<br/>*******");
	}

}

或者是实现simpleTag接口

package com.mydefault.jsp;

import java.io.IOException;

import javax.servlet.jsp.JspContext;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.JspFragment;
import javax.servlet.jsp.tagext.JspTag;
import javax.servlet.jsp.tagext.SimpleTag;
/****
 * 实现simpleTag接口的自定义标签处理类
 * @author Administrator
 *
 */
public class CutomTag1 implements SimpleTag{
	private JspContext context;
	private JspFragment jspTag;
	/**
	 * 每次执行标签的时候都会执行此方法 由tomcat自动去调用 (生命周期方法)
	 * 在调用次方法之前所有的setXX()方法都已经被调用,所以此方法能访问tomcat中传递过来的对象
	 */
	public void doTag() throws JspException, IOException {
		context.getOut().write("hello  custom tag !");
	}
	public JspTag getParent() {
		// TODO Auto-generated method stub
		return null;
	}
	public void setJspBody(JspFragment arg0) {
		// TODO Auto-generated method stub
		this.jspTag = arg0;
	}
	public void setJspContext(JspContext arg0) {
		// TODO Auto-generated method stub
		this.context = arg0;
	}
	public void setParent(JspTag arg0) {
		// TODO Auto-generated method stub
		
	}
	

}

  • *编写标签的描述文件 .tld
    tld文件一般都放到WEB-INF之下,这样保证客户端访问不到!
 <tag>
  	<name>mytag</name> 指定当前标签的名称
  	<tag-class>cn.itcast.tag.MyTag1</tag-class> 指定当前标签的标签处理类!
  	<body-content>empty</body-content> 指定标签体的类型,我们这里使用的是空标签!
  </tag>
  

 - **页面中指定tld文件位置**
 

<%@ taglib prefix=“x” uri=“www.test.com” %>


 - 在jsp中使用已经定义好的标签
	


This is my JSP page.
```
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值