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>

JSP 简单标签extends SimpleTagSupport的更多相关文章

  1. jsp简单标签开发(一)

    孤傲苍狼 @Override22 public void doTag() throws JspException, IOException {23 //得到代表jsp标签体的JspFragment24 ...

  2. JSP简单标签开发

    一.继承自SimpleTag接口的自定义标签实现类称为简单标签,接口中5个方法 1.setJspContext方法 用于把JSP页面的PageContext对象传递给标签处理器对象 2.setPare ...

  3. javaweb学习总结(二十七)——jsp简单标签开发案例和打包

    一.开发标签库 1.1.开发防盗链标签 1.编写标签处理器类:RefererTag.java 1 package me.gacl.web.simpletag; 2 3 import java.io.I ...

  4. javaweb学习总结(二十六)——jsp简单标签标签库开发(二)

    一.JspFragment类介绍 javax.servlet.jsp.tagext.JspFragment类是在JSP2.0中定义的,它的实例对象代表JSP页面中的一段符合JSP语法规范的JSP片段, ...

  5. javaweb学习总结(二十五)——jsp简单标签开发(一)

    一.简单标签(SimpleTag) 由于传统标签使用三个标签接口来完成不同的功能,显得过于繁琐,不利于标签技术的推广, SUN公司为降低标签技术的学习难度,在JSP 2.0中定义了一个更为简单.便于编 ...

  6. JSP简单标签标签库开发

    1.定制标签的实现类称为标签处理器,简单标签处理器指实现SimpleTag接口的类,如下图的SimpleTagSupport类,该类为SimpleTag接口的默认实现类. 注:不要直接实现Simple ...

  7. jsp 简单标签开发

    实现simpleTag接口的标签通常称为是简单标签,简单标签一共定义了5个方法 setJspContext方法 setParent方法 getParent方法 setJspBody方法 doTag方法 ...

  8. javaweb(二十六)——jsp简单标签标签库开发(二)

    一.JspFragment类介绍 javax.servlet.jsp.tagext.JspFragment类是在JSP2.0中定义的,它的实例对象代表JSP页面中的一段符合JSP语法规范的JSP片段, ...

  9. JSP简单标签的开发

    1. 新建RepeatSampleTag类,代码如下: package bid.zhazhapan.fims.tag; import java.io.IOException; import java. ...

随机推荐

  1. 安装Angulr CLI

    参考文档 https://www.jianshu.com/p/327d88284abb http://blog.csdn.net/zhy13087344578/article/details/6074 ...

  2. 放大镜如何用js

    例如: let imgs = { small: ["imgA_1.jpg", "imgB_1.jpg", "imgC_1.jpg"], mi ...

  3. 经常使用的js三元表达式

    语法:条件?表达式1:表达式2 .  条件的括号可要可不要的 let istrue = true; let a = (istrue === true) ? '我是true啊' : "我是fa ...

  4. VIDENT iSmart900自动多系统扫描工具OBDII支持ABS / SRS / EPB /传输诊断DPF再生/上油复位编码电池配置

    Vident系列中有许多多功能产品,其中最好的是Vident iSmart 900.购买视频系列后,以下是用户的一些评论 乔:因为我想它很好用.该工具很容易更新.我将公制重量单位的代码放到工具中.很容 ...

  5. PHP基础教程-APACHE

    兄弟连:如何配置APACHE.首先,安装并配置PHP3 1.解开压缩包到你喜欢的目录如:C:PHP3 2.把C:php3php3.ini-inst文件改名成PHP3.INI并拷贝到C:windows ...

  6. 主流包管理工具npm、yarn、cnpm、pnpm之间的区别与联系——原理篇

    接触 node 之后,一直使用npm包管理工具, cnpm 一开始会用一些,但是并没有觉得比 npm 快得多,使用 cnpm 的时候还经常安装不成功,只能再用 npm 安装一遍,渐渐的就弃用了 cnp ...

  7. luogu 1876 开灯 约数+打表

    打表后发现答案都是完全平方数,直接输出即可. #include <cstdio> #include <algorithm> using namespace std; int m ...

  8. maven项目启动找不到org.springframework.web.context.ContextLoaderListener

    解决方法: 1. 右键单击工程项目 ->点击 properties2. 选择 Deployment Assembly3. 点击 Add -> Java Build Path Entries ...

  9. delphi请求http接口中文乱码问题

    请求http接口的时候参数值是中文乱码: http接口一般都是由java,php以及C#开发而成的,乱码的原因也是由于编码的问题,一般传递数据的都是utf8,然后传递的时候都会urlEcode 那么d ...

  10. Java中的Error和Exception

    Exception和Error都是继承了Throwable类,在Java中只有Throwable类型的实例才可以被抛出(throw)或者捕获(catch),它是异常处理机制的基本组成类型. Excep ...