自定义标签的作成

尽管工具本身和第三方插件都提供了比较丰富的标签,供开发者使用,这些标签基本上能满足实际业务的功能需要,但是有时候集合具体项目具体业务,我们需要自定义一些标签来实现一些特有的逻辑功能,这主要是出于Team共通化开发考虑,简化重复的逻辑代码,提高生产性。

自定义标签的实现主要有以下几个步骤:

一、标签类,该类需要继承自TagSupport基类。
public class ColorTag extends TagSupport {
	
	private String color;

	@Override
	public int doStartTag() throws JspException {
		try {
			JspWriter out = this.pageContext.getOut();
			if("red".equals(color)) {
				out.println("<span style='color:red'>red</span>");
			}
			if("green".equals(color)) {
				out.println("<span style='color:green'>green</span>");
			}
			if("blue".equals(color)) {
				out.println("<span style='color:blue'>blue</span>");
			}
		}catch(IOException e) {
			e.printStackTrace();
		}
		return SKIP_BODY;
	}
	
	@Override
	public int doEndTag() throws JspException {
		// TODO Auto-generated method stub
		return EVAL_PAGE;
	}

	public String getColor() {
		return color;
	}

	public void setColor(String color) {
		this.color = color;
	}

}


二、定义标签描述文件color.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>2.2.3</tlib-version>
  <jsp-version>1.2</jsp-version>
  <short-name>cl</short-name>
  <uri>/color</uri>
  <display-name>"colorTag"</display-name>
      <tag>
           <name>color</name>
           <tag-class>tci.tag.ColorTag</tag-class>
           <body-content>empty</body-content>
           <attribute>
               <name>color</name>
               <required>true</required>
               <rtexprvalue>true</rtexprvalue>
           </attribute>
       </tag>
 </taglib>


三、在web.xml中注册自定的标签。
  <jsp-config>
    <taglib>
      <taglib-uri>/color</taglib-uri>
      <taglib-location>/WEB-INF/color.tld</taglib-location>
    </taglib>
  </jsp-config>


四、在页面中使用标签。
引入标签:<%@ taglib uri="/color" prefix="cl"%>
使用:<cl:color color="red"/>

你可能感兴趣的:(自定义标签,TagSupport)