自定义标签

    JSP开发过程中,JSTL,Struts2Tag不能满足要求时,程序员可以根据自己的要求,定制标签。

    1、定义一个类继承TagSupport,并实现类中的两个方法,doStartTag()、doEndTag()。doStartTag()中可以通过pageContext获取八大内置对象。

public int doStartTag() throws JspException {
		JspWriter out = pageContext.getOut();
		try {
			out.print("Welcome");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		//EVAL_BODY_INCLUDE   不忽略标签体 
		 //SKIP_BODY    忽略标签体
		return EVAL_BODY_INCLUDE;//忽略标签体
	}
public int doEndTag() throws JspException {
		
		return EVAL_PAGE;//保留标签后面的内容
	}

    2、在WEB-INF下配置tld文件

    

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
                        "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
 <tlib-version>1.0</tlib-version>
 <jsp-version>1.2</jsp-version>
 <short-name>zmh</short-name>
 <uri>/zmh-tag</uri>
 <tag>
  <name>test</name> //标签名
  <tag-class>tag.MyTag</tag-class> //标签定义的类
  <body-content>empty</body-content>  //标签体是否有内容,如果不忽略,写JSP
 </tag>

</taglib>

    3、在页面引用

    

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib  uri="/zmh-tag"  prefix="zmh"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  </head>
  
  <body>
    	<zmh:test />
  </body>
</html>

   当然我们也可以给标签增加属性,大致和上面差不多,其tld配置如下,如下图


标签属性对应自定义类中的属性



doStartTag()方法如下



    那么我们在页面就可以使用

    

    然后页面就会显示:Welcome北京欢迎你。

    以上是自己对自定义标签的总结,注意这个tld配置文件是放到WEB-INF下的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值