试用自定义标签,控制页面是否输出

  一.控制标签体是否输出   

1 <dwl:demo1>
2 
3      aaaaa
4 
5 </dwl:demo1>

   控制aaa是否输出,通过查看Tag帮助文档,了解到,在doStartTag()方法中,如果返回的是EVAL_BODY_INCLUDE,和skip.boby,来控制是否输出标签体

1 @Override
2     public int doStartTag() throws JspException {
3         
4         //不输出  输出:EVAL_BODY_INCLUDE
5         return Tag.SKIP_BODY;
6     }

  tld

1 <tag>
2         <!-- 描述,可以删去-->
3         <description>Outputs Hello, World</description>
4         <name>viewIP</name>
5         <!-- 标签处理器的路径-->
6         <tag-class>com.du.tag.TagDemo1</tag-class>
7         <!-- 默认,有没有标签体,empty没有 JSP 有-->
8         <body-content>JSP</body-content>
9     </tag>

*******************************************************************************************

  二.控制jsp输出,这里试用doEndTag();

    jsp

 1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
 2 <%@ taglib uri="http://www.dwl.com" prefix="dwl"  %>
 3 
 4 <dwl:demo1/>
 5 
 6 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 7 <html>
 8   <head>   
 9    <title>自定义标签,控制jsp显示</title>    
10   </head>
11   
12   <body>
13     
14   </body>
15 </html>

  java 

1     @Override
2     public int doEndTag() throws JspException {
3         
4         //Tag.EVAL_PAGE:余下的jsp继续执行,SKIP_PAGE:余下的jsp不会执行
5         return Tag.EVAL_PAGE;
6     }

   tld

1 <tag>
2         <!-- 描述,可以删去-->
3         <description>Outputs Hello, World</description>
4         <name>viewIP</name>
5         <!-- 标签处理器的路径-->
6         <tag-class>com.du.tag.TagDemo1</tag-class>
7         <!-- 默认,有没有标签体,empty没有 JSP 有-->
8         <body-content>empty</body-content>
9     </tag>
如果有使用请标明来源:http://www.cnblogs.com/duwenlei/
原文地址:https://www.cnblogs.com/duwenlei/p/3506748.html