JSP 简单标签extends SimpleTagSupport
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的更多相关文章
- jsp简单标签开发(一)
孤傲苍狼 @Override22 public void doTag() throws JspException, IOException {23 //得到代表jsp标签体的JspFragment24 ...
- JSP简单标签开发
一.继承自SimpleTag接口的自定义标签实现类称为简单标签,接口中5个方法 1.setJspContext方法 用于把JSP页面的PageContext对象传递给标签处理器对象 2.setPare ...
- javaweb学习总结(二十七)——jsp简单标签开发案例和打包
一.开发标签库 1.1.开发防盗链标签 1.编写标签处理器类:RefererTag.java 1 package me.gacl.web.simpletag; 2 3 import java.io.I ...
- javaweb学习总结(二十六)——jsp简单标签标签库开发(二)
一.JspFragment类介绍 javax.servlet.jsp.tagext.JspFragment类是在JSP2.0中定义的,它的实例对象代表JSP页面中的一段符合JSP语法规范的JSP片段, ...
- javaweb学习总结(二十五)——jsp简单标签开发(一)
一.简单标签(SimpleTag) 由于传统标签使用三个标签接口来完成不同的功能,显得过于繁琐,不利于标签技术的推广, SUN公司为降低标签技术的学习难度,在JSP 2.0中定义了一个更为简单.便于编 ...
- JSP简单标签标签库开发
1.定制标签的实现类称为标签处理器,简单标签处理器指实现SimpleTag接口的类,如下图的SimpleTagSupport类,该类为SimpleTag接口的默认实现类. 注:不要直接实现Simple ...
- jsp 简单标签开发
实现simpleTag接口的标签通常称为是简单标签,简单标签一共定义了5个方法 setJspContext方法 setParent方法 getParent方法 setJspBody方法 doTag方法 ...
- javaweb(二十六)——jsp简单标签标签库开发(二)
一.JspFragment类介绍 javax.servlet.jsp.tagext.JspFragment类是在JSP2.0中定义的,它的实例对象代表JSP页面中的一段符合JSP语法规范的JSP片段, ...
- JSP简单标签的开发
1. 新建RepeatSampleTag类,代码如下: package bid.zhazhapan.fims.tag; import java.io.IOException; import java. ...
随机推荐
- pycharm 快捷键及一些常用设置
pycharm中的快捷键及一些常用设置 在PyCharm /opt/pycharm-3.4.1/help目录下可以找到ReferenceCard.pdf快捷键英文版说明 PyCharm Default ...
- New!Devexpress WPF各版本支持VS和SQL Server版本对应图
点击获取DevExpress v19.2.3完整版试用下载 本文主要为大家介绍DevExpress WPF各大版本支持的VS版本和支持的.Net版本图,Devexpress WPF v19.2.3日前 ...
- idea操作mysql数据库添加汉字时出现乱码解决方案
首先 然后 最后 在连接数据库后面加一个指定编码格式 编码格式: characterEncoding=UTF-8
- Spark配置详解
Spark提供三个位置用来配置系统: Spark属性:控制大部分的应用程序参数,可以用SparkConf对象或者Java系统属性设置 环境变量:可以通过每个节点的 conf/spark-env.sh脚 ...
- 【C#-文件管理】 判断文件夹或文件是否存在,并创建文件夹或文件
1.判断文件夹是否存在 Directory.Exists(“文件夹路径”) 返回false表示不存在,true表示存在 2.判断文件是否存在 File.Exists("文件路径&quo ...
- [Python之路] 使用装饰器给Web框架添加路由功能(静态、动态、伪静态URL)
一.观察以下代码 以下来自 Python实现简易HTTP服务器与MINI WEB框架(利用WSGI实现服务器与框架解耦) 中的mini_frame最后版本的代码: import time def in ...
- Dapper源码学习
序言 资料 https://github.com/StackExchange/Dapper
- 未AC
Count the Trees Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- 解决xshell无法连接virtualbox中的虚拟机(Ubuntu18.04)的问题
遇到这个问题第一反应是是否安装相应的组件: sudo apt-get install openssh-server 开启防火墙端口 firewall-cmd --zone=/tcp --permane ...
- 26.Python三目运算符(三元运算符)用法详解
Python 可通过 if 语句来实现三目运算符的功能,因此可以近似地把这种 if 语句当成三目运算符.作为三目运算符的 if 语句的语法格式如下: True_statements if expres ...