标签:
一、开发标签库的步骤:
二、SimpleTag接口方法的执行顺序
三、开发简单标签实现页面逻辑
1、控制jsp页面某一部分内容是否执行
public class simpleDemo1 extends SimpleTagSupport { public void doTag() throws JspException, IOException { JspFragment jf=this.getJspBody(); jf.invoke(null);//把这句注释了,就不执行 } }
public class simpleDemo2 extends SimpleTagSupport { @Override public void doTag() throws JspException, IOException { JspFragment js=this.getJspBody(); } }
2、控制jsp页面内容重复执行
public class simpleDemo3 extends SimpleTagSupport { @Override public void doTag() throws JspException, IOException { JspFragment jf=this.getJspBody(); for(int i=0;i<5;i++){ jf.invoke(null); } } }
3、控制整个jsp页面是否执行
public class simpleDemo4 extends SimpleTagSupport { @Override public void doTag() throws JspException, IOException { throw new SkipPageException(); } }
4、修改某一部分内容
public void doTag() throws JspException, IOException { // 得到代表jsp标签体的JspFragment JspFragment jf=this.getJspBody(); StringWriter sw=new StringWriter(); //将标签体的内容写入到sw流中 jf.invoke(sw); //获取sw流缓冲区的内容 String context=sw.toString(); context=context.toUpperCase(); //将修改后的content输出到浏览器中 this.getJspContext().getOut().write(context); }
四、simple.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>clyjs</short-name> <uri>/simpleTag</uri> <tag> <name>demo1</name> <tag-class>cn.lyjs.web.simpletag.simpleDemo1</tag-class> <body-content>scriptless</body-content> </tag> <tag> <name>demo2</name> <tag-class>cn.lyjs.web.simpletag.simpleDemo2</tag-class> <body-content>scriptless</body-content> </tag> <tag> <name>demo3</name> <tag-class>cn.lyjs.web.simpletag.simpleDemo3</tag-class> <body-content>scriptless</body-content> </tag> <tag> <name>demo4</name> <tag-class>cn.lyjs.web.simpletag.simpleDemo4</tag-class> <body-content>empty</body-content> </tag> <tag> <name>demo5</name> <tag-class>cn.lyjs.web.simpletag.simpleDemo5</tag-class> <body-content>scriptless</body-content> </tag> </taglib>
五、1.jsp 文件
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@taglib uri="/simpleTag" prefix="clyjs" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>simpleTag应用</title> </head> <body> <clyjs:demo1> 这个是输出标签体!!!<br/> </clyjs:demo1> <clyjs:demo2> 这个内容不能被输出!!!<br/> </clyjs:demo2> <clyjs:demo3> 重复输出五遍!!!<br/> </clyjs:demo3> <clyjs:demo5> aaaaaaaaaaaaa </clyjs:demo5> </body> </html>
标签:
原文地址:http://www.cnblogs.com/lyjs/p/4916693.html