简单标签功能实例

在JSP2.0以后,为了减少标签学习成本,SUN 公司推荐使用SimpleTag接口,这个接口的方法所有的对于标签的控件全部在doTag()这个标签里面,所以使用起来更加简单,下面列举简单标签实现的四个功能。

1.使用简单标签控制是否执行标签体

首先写一个类继承SimpleTagSupport这个实现类

package com.bird.web.simpleTag; import java.io.IOException; import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.JspFragment; import javax.servlet.jsp.tagext.SimpleTagSupport; /** * 控制标签内容是否显示 * @author bird * */ public class SimpleTagDemo1 extends SimpleTagSupport{ @Override public void doTag() throws JspException, IOException { //JspFragment jf = this.getJspBody();//获得标签体的内容作为对象返回 //jf.invoke(null); } }
在这个方法里面不需要执行任何方法,这样就不会执行标签体里面的内容了。

然后在tld描述文件里面对这个标签进行描述

<?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>Bird</short-name> <uri>http://www.bird.com</uri> <tag> <name>demo1</name> <tag-class>com.bird.web.simpleTag.SimpleTagDemo1</tag-class> <body-content>scriptless</body-content> </tag> <tag> <name>demo2</name> <tag-class>com.bird.web.simpleTag.SimpleTagDemo2</tag-class> <body-content>scriptless</body-content> </tag> <tag> <name>demo3</name> <tag-class>com.bird.web.simpleTag.SimpleTagDemo3</tag-class> <body-content>scriptless</body-content> </tag> <tag> <name>demo4</name> <tag-class>com.bird.web.simpleTag.SimpleTagDemo4</tag-class> <body-content>empty</body-content> </tag> </taglib>
继续在页面里面使用这个标签

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%> <%@taglib uri="http://www.bird.com" prefix="bird" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>使用简单标签控制是否执行标签体</title> </head> <body> <bird:demo1> aaaaa </bird:demo1> </body> </html>
2.使用简单标签控制JSP页面是否显示

还是先是实现类

package com.bird.web.simpleTag; import java.io.IOException; import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.JspFragment; import javax.servlet.jsp.tagext.SimpleTagSupport; /** * * @author Bird * */ public class SimpleTagDemo2 extends SimpleTagSupport{ @Override public void doTag() throws JspException, IOException { JspFragment jf = this.getJspBody(); for(int i = 0; i < 5; i++){ jf.invoke(null); } } }
然后是使用这个标签

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%> <%@taglib uri="http://www.bird.com" prefix="bird" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>使用简单标签控制迭代数据</title> </head> <body> <bird:demo2> 小白 </bird:demo2> </body> </html>
3.修改标签体内容

package com.bird.web.simpleTag; import java.io.IOException; import java.io.StringWriter; import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.JspFragment; import javax.servlet.jsp.tagext.SimpleTagSupport; /** * 修改标签体 * @author Bird * */ public class SimpleTagDemo3 extends SimpleTagSupport{ @Override public void doTag() throws JspException, IOException { JspFragment jf = this.getJspBody(); StringWriter sw = new StringWriter(); jf.invoke(sw); String content = sw.toString(); content = content.toUpperCase(); this.getJspContext().getOut().write(content); } }
然后使用这个标签

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%> <%@taglib uri="http://www.bird.com" prefix="bird" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>修改标签体内容</title> </head> <body> <bird:demo3> aaaaaa </bird:demo3> </body> </html>
4.使用简单标签控制JSP页面是否显示package com.bird.web.simpleTag; import java.io.IOException; import javax.servlet.jsp.JspException; import javax.servlet.jsp.SkipPageException; import javax.servlet.jsp.tagext.SimpleTagSupport; /** * 使用简单标签控制JSP页面是否显示 * @author Bird * */ public class SimpleTagDemo4 extends SimpleTagSupport{ @Override public void doTag() throws JspException, IOException { throw new SkipPageException(); } } 然后使用这个标签

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%> <%@taglib uri="http://www.bird.com" prefix="bird" %> <bird:demo4/> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>使用简单标签控制JSP页面是否显示</title> </head> <body> </body> </html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值