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 stubreturn 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;@Overridepublic int doAfterBody() throws JspException {// TODO Auto-generated method stubx--;if(x>0){return IterationTag.EVAL_BODY_AGAIN;}else{return IterationTag.SKIP_BODY;}}@Overridepublic int doStartTag() throws JspException {// TODO Auto-generated method stubreturn 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 {//把标签体改为大写的@Overridepublic int doStartTag() throws JspException {// TODO Auto-generated method stubreturn BodyTag.EVAL_BODY_BUFFERED;}@Overridepublic 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>