简单标签

         我们也可以通过继承简单标签类来实现自己的标签。

     

package com.shizhan;

import java.io.IOException;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.JspFragment;
import javax.servlet.jsp.tagext.SimpleTagSupport;

public class SimpleTagDemo1 extends SimpleTagSupport {

	@Override
	public void doTag() throws JspException, IOException {
		   //取得jspbody
	       JspFragment j=this.getJspBody();
	       //把body中内容输入到out中
	       j.invoke(this.getJspContext().getOut());
	}
     
}
如果我们需要标签体中的内容重复执行只需要下列方法

public void doTag() throws JspException, IOException {
		   //取得jspbody
	       JspFragment j=this.getJspBody();
	       for(int i=0;i<5;i++)
	       {
	           j.invoke(this.getJspContext().getOut());
	       }
	}
当我们需要修改标签体中的内容时:

public void doTag() throws JspException, IOException {
		   //取得jsp代码片段
	       JspFragment j=this.getJspBody();
	       StringWriter sw=new StringWriter();
	       //先把内容写到sw缓冲里面
	       j.invoke(sw);
	       //得到缓冲区里面的字符串
	       String content=sw.toString();
	       //向浏览器写入转换为大写后的内容
	       this.getJspContext().getOut().write(content.toUpperCase());
	}


我们如果想控制整个jsp页面不执行的话,只需要在doTag中添加一句代码

throw new SkipPageException();


你可能感兴趣的:(简单标签)