1.控制JSP页面某一部分内容是否执行

public void doTag()

this.getJspBody().invoke(null);执行

空白,不执行

2.控制JSP页面内容重复执行

 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 {
// TODO Auto-generated method stub
JspFragment jf = this.getJspBody(); for (int i = 0; i < 10; i++) {
jf.invoke(null);
}
} }

3.修改JSP页面内容输出

 package cn.itcast.web.simpletag;

 import java.io.IOException;
import java.io.StringWriter; import javax.servlet.jsp.JspContext;
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 {
// TODO Auto-generated method stub JspFragment jf = this.getJspBody();
StringWriter sw = new StringWriter();
jf.invoke(sw); String content = sw.getBuffer().toString(); content = content.toUpperCase(); JspContext pageContent = this.getJspContext();
pageContent.getOut().write(content);
} }

4.控制标签余下的JSP不执行

 package cn.itcast.web.simpletag;

 import java.io.IOException;

 import javax.servlet.jsp.JspException;
import javax.servlet.jsp.SkipPageException;
import javax.servlet.jsp.tagext.SimpleTagSupport; public class SimpleTagDemo4 extends SimpleTagSupport { @Override
public void doTag() throws JspException, IOException {
// TODO Auto-generated method stub
throw new SkipPageException();
} }

开发带属性的标签

要想让一个自定义标签具有属性,通常需要完成两个任务:

在标签处理器中编写每个属性对应的setter方法

 package cn.itcast.web.simpletag;

 import java.io.IOException;

 import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.SimpleTagSupport; public class SimpleTagDemo5 extends SimpleTagSupport { private int count; public void setCount(int count) {
this.count = count;
} @Override
public void doTag() throws JspException, IOException {
// TODO Auto-generated method stub for (int i = 0; i < count; i++) {
this.getJspBody().invoke(null);
}
} }

在tld文件中描述标签的属性

     <tag>
<name>demo5</name>
<tag-class>cn.itcast.web.simpletag.SimpleTagDemo5</tag-class>
<body-content>scriptless</body-content>
<attribute>
<name>count</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>

最新文章

  1. vs中使用git
  2. App提交Appstore审核流程
  3. 百度UEditor基本使用
  4. [转载]SVN如何恢复已删除文件或文件夹
  5. 利用百度语音API进行语音识别。
  6. css弹性布局
  7. Genymotion加速下载虚拟镜像速度慢失败Connection timeout
  8. linux下修改系统时间
  9. 【OpenCV】全景拼接
  10. JavaScript的作用域和提升机制
  11. PHP原始的数据库操作
  12. javascript XMLHttpRequest对象全面剖析
  13. Linux驱动编写(块设备驱动代码)
  14. linux BC命令行计算器
  15. JS实现等比例缩放图片
  16. js运算符单竖杠“|”的作用
  17. Codeforces 869C The Intriguing Obsession
  18. 老司机教你在windows不用软件隐藏重要文件
  19. hbase的常用的shell命令&amp;hbase的DDL操作&amp;hbase的DML操作
  20. 15.selenium_case01

热门文章

  1. LoadRunner(1)
  2. java8学习之Optional深入详解
  3. sql 实现取表中相同id时间最大的一行 利用distinct on
  4. 微软Blazor组件发布,DevExpress v19.1.8中可用:Charts新功能
  5. SpringCloud之网关 Gateway(五)
  6. idea设置数据库连接所有项目都能看到
  7. Vue:选中商品规格改变字体和边框颜色(默认选中第一种规格)
  8. 【CUDA 基础】0.0 腾讯云CUDA环境搭建
  9. maven项目启动找不到org.springframework.web.context.ContextLoaderListener
  10. 2019.12.12网页设计大赛&amp;2019.12.13程序设计大赛观后感