目标:创建一个自定义JSP标签,使用该标签可以控制其标签体的显示与不显示。
1) 新建web项目
2) 新建一个处理标签的java类
1 package com.skyer; 2 3 import java.io.StringWriter; 4 5 import javax.servlet.jsp.JspException; 6 import javax.servlet.jsp.tagext.Tag; 7 import javax.servlet.jsp.tagext.TagSupport; 8 9 public class MyTag extends TagSupport { 10 11 private static final long serialVersionUID = 1L; 12 13 private String display; 14 15 @Override 16 public int doStartTag() throws JspException { 17 if ("1".equals(display)) { // 1的时候显示 18 return Tag.EVAL_BODY_INCLUDE; 19 } else if ("0".equals(display)) { // 0的时候不显示 20 return Tag.SKIP_BODY; 21 } else { // 其他的都不显示 22 return Tag.SKIP_BODY; 23 } 24 } 25 26 public void setDisplay(String display) { 27 this.display = display; 28 } 29 30 }
3) 在WEB-INF目录下新建MyTag.tld文件
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd"> 3 <taglib> 4 <tlib-version>1.0</tlib-version> 5 <jsp-version>2.0</jsp-version> 6 <short-name>my</short-name> 7 8 <tag> 9 <name>MyTag</name> 10 <tag-class>com.skyer.MyTag</tag-class> 11 <body-content>jsp</body-content> 12 <attribute> 13 <name>display</name> 14 <required>true</required> 15 </attribute> 16 </tag> 17 18 </taglib>
4) 在index.jsp文件中引入自定义的标签
1 <%@ taglib uri="/WEB-INF/MyTag.tld" prefix="my" %>
5) 使用该标签
1 <my:MyTag display="1"> 2 <font color="red">Hello Tag!</font> 3 </my:MyTag>