·控制jsp页面某一部分内容是否执行
java代码:
package cn.itcast.web.simpletag;
import java.io.IOException;
import javax.servlet.jsp.JspContext;
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 {
JspFragment jf = this.getJspBody();
jf.invoke(this.getJspContext().getOut()); //标签体执行
super.doTag();
}
}
tld代码:
<tag>
<name>demo1</name>
<tag-class>cn.itcast.web.tag.SimpleTagDemo1</tag-class>
<body-content>scriptless</body-content> <!-- script代表有标签体 scriptless是无脚本 -->
</tag>
jsp中代码:
声明:
<%@ taglib uri="/simpletag" prefix="sitcast" %>
调用:
<sitvast:demo1>
aaaa<br/>
</sitvast:demo1>
·用简单标签体实现迭代
java代码:
package cn.itcast.web.simpletag;
import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.JspFragment;
import javax.servlet.jsp.tagext.SimpleTagSupport;
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); //null是默认写给浏览器 相当于:jf.invoke(this.getJspContext().getOut());
}
}
}
tld声明代码:
<tag>
<name>demo2</name>
<tag-class>cn.itcast.web.simpletag.SimpleTagDemo2</tag-class>
<body-content>scriptless</body-content> <!-- script代表有标签体 scriptless是无脚本 -->
</tag>
jsp中的代码:
声明:
<%@ taglib uri="/simpletag" prefix="sitcast" %>
调用:
<sitcast:demo2>
This is my JSP page. <br>
</sitcast:demo2>
实现效果:
输出五次This is my JSP page.
·将标签内容改为大写
java代码:
package cn.itcast.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;
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);
}
}
tld声明代码:
<tag>
<name>demo3</name>
<tag-class>cn.itcast.web.simpletag.SimpleTagDemo3</tag-class>
<body-content>scriptless</body-content> <!-- script代表有标签体 scriptless是无脚本 -->
</tag>
jsp中的代码:
声明:
<%@ taglib uri="/simpletag" prefix="sitcast" %>
调用:
<sitcast:demo3>
This is my JSP page. <br>
</sitcast:demo3>