2_Jsp标签_传统标签功能简介
1传统标签接口关系:

2功能简介

3代码测试
1.标签体内容控制 StartTag
package com.tag; import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport; public class EvalBodyTag extends TagSupport {
private boolean show;
public void setShow(boolean show){
this.show = show; }
public int doStartTag() throws JspException {
// TODO Auto-generated method stub
if(show==true)
return super.EVAL_BODY_INCLUDE;
else
return super.SKIP_BODY;
} }
EvalBodyTag
2.标签结束后的处理 EndTag
package com.tag; import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport; public class ShowPageTag extends TagSupport {
private boolean show;
public void setShow(boolean show){
this.show = show;
}
@Override public int doEndTag() throws JspException {
System.out.println(show);
if(show==true)
return super.EVAL_PAGE;
else
return super.SKIP_PAGE;
}
@Override
public int doStartTag() throws JspException {
return super.EVAL_BODY_INCLUDE;
} }
ShowPageTag
3. 标签内容处理完后--doAfterBody
package com.tag; import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.IterationTag;
import javax.servlet.jsp.tagext.Tag;
import javax.servlet.jsp.tagext.TagSupport; public class RepeatTag extends TagSupport{ private int count;
public void setCount(int count){
this.count = count;
}
public int doAfterBody() throws JspException {
count--;
if(count>0)
return RepeatTag.EVAL_BODY_AGAIN;
else
return RepeatTag.SKIP_BODY;
} public int doStartTag() throws JspException {
return Tag.EVAL_BODY_INCLUDE;
} }
RepeatTag
4. 内容格式化
package com.tag; import java.io.IOException; import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.BodyContent;
import javax.servlet.jsp.tagext.BodyTagSupport; public class BodyContentTag extends BodyTagSupport { @Override
public int doEndTag() throws JspException {
BodyContent body = this.getBodyContent();
String bc = body.getString();
bc = bc.toUpperCase();
try {
this.pageContext.getOut().write(bc);
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
return super.doStartTag(); } @Override
public int doStartTag() throws JspException {
return super.EVAL_BODY_BUFFERED;
} }
BodyContentTag
4 tld文件约束:
<?xml version="1.0" encoding="UTF-8" ?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
<description>A tag library exercising SimpleTag handlers.</description>
<tlib-version>1.0</tlib-version>
<short-name>SimpleTagLibrary</short-name>
<uri>http://self-tag-with-hello</uri> <tag>
<name>helloWorld</name> <tag-class>com.tag.HelloWorldTag</tag-class>
<body-content>empty</body-content>
<attribute>
<name>name</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag> <tag>
<name>evalbody</name>
<tag-class>com.tag.EvalBodyTag</tag-class>
<body-content>JSP</body-content>
<attribute>
<name>show</name>
<required>true</required>
</attribute> </tag> <tag>
<name>showpage</name>
<tag-class>com.tag.ShowPageTag</tag-class>
<body-content>JSP</body-content>
<attribute>
<name>show</name>
<required>true</required>
</attribute> </tag> <tag>
<name>repeatbody</name>
<tag-class>com.tag.RepeatTag</tag-class>
<body-content>JSP</body-content>
<attribute>
<name>count</name>
<required>true</required>
</attribute> </tag>
<tag>
<name>changeContent</name>
<tag-class>com.tag.BodyContentTag</tag-class>
<body-content>JSP</body-content> </tag> </taglib>
MyTag
5页面结果展示

2_Jsp标签_传统标签功能简介的更多相关文章
- JSP第六篇【自定义标签之传统标签】
为什么要使用自定义标签? JSTL标签库只提供了简单的输出等功能,没有实现任何的HTML代码封装,并且某些复杂类型转换,或者逻辑处理的时候,JSTL标签库完成不了,需要自定义标签! 编写自定义标签的步 ...
- 3_Jsp标签_简单标签_防盗链和转义标签的实现
一概念 1防盗链 在HTTP协议中,有一个表头字段叫referer,采用URL的格式来表示从哪儿链接到当前的网页或文件,通过referer,网站可以检测目标网页访问的来源网页.有了referer跟踪来 ...
- javaEE(7)_自定义标签&JSTL标签(JSP Standard Tag Library)
一.自定义标签简介 1.自定义标签主要用于移除Jsp页面中的java代码,jsp禁止出现一行java脚本. 2.使用自定义标签移除jsp页面中的java代码,只需要完成以下两个步骤: •编写一个实现T ...
- JSP传统标签开发
1.标签技术的API类继承关系 1).JspTag接口是所有自定义标签的父接口 该接口中没有任何属性和方法,只有两个直接子接口,Tag接口和SimpleTag接口,把实现Tag接口的自定义标签叫做传统 ...
- 传智播客JavaWeb day07、day08-自定义标签(传统标签和简单标签)、mvc设计模式、用户注册登录注销
第七天的课程主要是讲了自定义标签.简单介绍了mvc设计模式.然后做了案例 1. 自定义标签 1.1 为什么要有自定义标签 前面所说的EL.JSTL等技术都是为了提高jsp的可读性.可维护性.方便性而取 ...
- JSP自定义标签——传统标签
同JSP标签一样,自定义标签主要用于移除JSP页面中的Java代码,可以看到我们在JSP中其实是禁止使用Java脚本的,任何要想通过Java代码实现的功能都必须以标签形式来处理,可以使用JSP标签,J ...
- Java精选笔记_自定义标签
自定义标签 自定义标签入门 什么是自定义标签 自定义标签可以有效地将HTML代码与Java代码分离,从而使不懂Java编程的HTML设计人员也可以编写出功能强大的JSP页面 JSP规范中定义了多个用于 ...
- javaweb学习总结(二十四)——jsp传统标签开发
一.标签技术的API 1.1.标签技术的API类继承关系 二.标签API简单介绍 2.1.JspTag接口 JspTag接口是所有自定义标签的父接口,它是JSP2.0中新定义的一个标记接口,没有任何属 ...
- jsp jsp传统标签开发
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
随机推荐
- [SaltStack] Return日志入库审计
SaltStack日志return审计 在我们执行salt任务时, 默认日志是屏幕打印的, 对于我们审计任务运行情况带来很不方便, 因此我们对日志结果进行了二次开发, 将job日志处理后入库, 方便查 ...
- final、finalize()、finally、static
一.final final的三种情况: 1.变量 1)对于基本类型,final使数值恒定不变:而对于对象引用,final使引用恒定不变,即一旦引用被初始化指向一个对象,就无法再把它改为指向另一个对象, ...
- C#将图片进行马赛克处理
/// <summary> /// 马赛克处理 /// </summary> /// <param name="bitmap"></par ...
- hdu 1395(欧拉函数)
2^x mod n = 1 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tot ...
- 联通积分兑换的Q币怎么兑换到QQ上
可登录联通积分商城http://jf.10010.com 查询和兑换Q币, 1,通过联通积分商城自主兑换,提交订单扣除积分成功后,10010端口将自动为您下发验证码短信. 2,在有效期内登陆Q币充值 ...
- centos7.2安装tomcat8
环境: 阿里云centos7.2 tomcat8.0.32 jdk8.131 1 上传tomcat安装包到服务器的/home(个人习惯) 2 解压安装包 [root@iZt4n6h3u4k407nni ...
- python-字符转换遇到的问题
1,异常: 'ascii' codec can't encode characters 字符集的问题,在文件前加两句话:import sysreload(sys)sys.setdefaultencod ...
- Splitting Pile --AtCoder
题目描述 Snuke and Raccoon have a heap of N cards. The i-th card from the top has the integer ai written ...
- 某考试 T2 Seg
Seg [问题描述]数轴上有n条线段,第i条线段的左端点是a[i],右端点是b[i].Bob发现1~2n共2n个整数点,每个点都是某条线段的端点.这些线段有如下两类特点:1 x y,表示第x条线段和第 ...
- Ruby on rails初体验(三)
继体验一和体验二中的内容,此节将体验二中最开始的目标来实现,体验二中已经将部门添加的部分添加到了公司的show页面,剩下的部分是将部门列表也添加到公司的显示页面,整体思路和体验二中相同,但是还是会有点 ...