自定义JSP标签

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自定义JSP标签相关的知识,希望对你有一定的参考价值。

目标:创建一个自定义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>

6)  测试

以上是关于自定义JSP标签的主要内容,如果未能解决你的问题,请参考以下文章

JSP自定义tag控件标签

jsp自定义标签

[Java] JSP笔记 - 自定义标签

JSP自定义标签的使用简化版

自定义标签

13.自定义标签