日期:2014-05-16  浏览次数:20369 次

JSP自定义标签控制JSP内容显示&&自定义标签详解
/*
实现功能:自定义标签控制JSP内容显示还是不显示

日期:20130930

作者:烟大阳仔

*/
1.编写一个实现tag接口的JAVA类
public int doStartTag() throws JspException {
		
		return Tag.SKIP_BODY;//控制标签不显示
		//return Tag.EVAL_BODY_INCLUDE;//控制标

签对所有人显示
	}
	
	
2.在tld文件中对标签处理器进行描述(tld文件的位置WEB-INF里面)
<?xml version="1.0" encoding="UTF-8" ?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 

http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
    version="2.0">
    <description>A tag library exercising SimpleTag 

handlers.</description>
    <tlib-version>1.0</tlib-version>
    <short-name>TagLibDemo2</short-name>
    <uri>/TagLibDemo2</uri>
    <tag>
        <name>Demo2</name>
        <tag-class>cn.com.web.tag.TagDemo2</tag-class>
        <body-content>JSP</body-content>
    </tag>
</taglib>
3.在jsp页面中使用标签
<body>
	<TagLib:Demo2>
		MyTagLib
	</TagLib:Demo2>
</body>

-------------------------------------------------------------------------
/*
实现功能:控制整个JSP页面的输出

日期:20130930

作者:烟大阳仔

*/
1.编写一个实现tag接口的JAVA类
public int doEndTag() throws JspException {
		// TODO Auto-generated method stub
		return Tag.SKIP_PAGE;//不显示页面的内容
		//return Tag.EVAL_PAGE;//显示整个页面的内

容
	}
	
	
2.在tld文件中对标签处理器进行描述(tld文件的位置WEB-INF里面)
<?xml version="1.0" encoding="UTF-8" ?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 

http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
    version="2.0">
    <description>A tag library exercising SimpleTag 

handlers.</description>
    <tlib-version>1.0</tlib-version>
    <short-name>TagDemo3</short-name>
    <uri>/TagDemo3</uri>
    <tag>
        <name>Demo3</name>
        <tag-class>cn.com.web.tag.TagDemo3</tag-class>
        <body-content>empty</body-content>
    </tag>
</taglib>
3.在jsp页面中使用标签
<%@ page language="java" contentType="text/html; charset=UTF-

8"
    pageEncoding="UTF-8"%>
    <%@taglib uri="/TagDemo3" prefix="TagLib" %>
    <TagLib:Demo3/>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 

Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; 

charset=UTF-8">
<title>控制整个JSP是不是输出</title>
</head>
<body>
	这个页面在Taglib:Demo3标签的作用下无法显示(第四行添

加了标签)
</body>
</html>

-------------------------------------------------------------------------
/*
实现功能:控制整个JSP页面内容循环显示

日期:20130930

作者:烟大阳仔

*/
1.编写一个实现tag接口的JAVA类实现TagSupport使用Iteration接口
public class TagDemo4 extends TagSupport 
{
	private static final long serialVersionUID = 1L;
	int x=5;
	@Override
	public int doAfterBody() throws JspException {
		// TODO Auto-generated method stub
		
		x--;
		if(x>0)
		{
			return 

IterationTag.EVAL_BODY_AGAIN;
		}
		else
		{
			return IterationTag.SKIP_BODY;
		}
	}

	@Override
	public int doStartTag() throws JspException {
		// TODO Auto-generated method stub
		return Tag.EVAL_BODY_INCLUDE;
	}
	
	
	
2.在tld文件中对标签处理器进行描述(tld文件的位置WEB-INF里面)
<?xml version="1.0" encoding="UTF-8" ?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 

http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.