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.xsd"
    version="2.0">
    <description>A tag library exercising SimpleTag 

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

8"
    pageEncoding="UTF-8"%>
    <%@taglib uri="/TagDemo4" prefix="TagDemo4" %>
<!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>
	<TagDemo4:Demo4>
		我是阳仔
	</TagDemo4:Demo4>
</body>
</html>

-------------------------------------------------------------------------------------------------------------
/*
实现功能:修改JSP内容

日期:20131001

作者:烟大阳仔

*/
1.编写一个实现tag接口的JAVA类实现TagSupport使用Iteration接口
public class TagDemo5 extends BodyTagSupport 
{
	//把标签体改为大写的
	@Override
	public int doStartTag() throws JspException {
		// TODO Auto-generated method stub
		return BodyTag.EVAL_BODY_BUFFERED;
	}

	@Override
	public int doEndTag() throws JspException {
		
		BodyContent bc=this.getBodyContent();
		String content=bc.getString();
		content=content.toUpperCase();
		try {
			this.pageContext.getOut().write

(content);
		} catch (IOException e) {
			throw new RuntimeException(e);
		}
		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>TagDemo5</short-name>
    <uri>/TagDemo5</uri>
    <tag>
        <name>Demo5</name>
        <tag-class>cn.com.web.tag.TagDemo5</tag-class>
        <body-content>JSP</body-content>
    </tag>
</taglib>
3.在jsp页面中使用标签
<%@ page language="java" contentType="text/html; charset=UTF-

8"
    pageEncoding="UTF-8"%>
    <%@taglib uri="/TagDemo5" prefix="TagDemo5" %>
<!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>用标签修改标签的内容(改为大写的)</title>
</head>
<body>
	<TagDemo5:Demo5>
		OneWorld!One Dream!
	</TagDemo5:Demo5>
	
</body>
</html>


你可能感兴趣的:(jsp,标签,tag)