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= ...
随机推荐
- VIM使用技巧5
查找并手动替换.例如有如下一段文字: We' re waiting for content before the site can go live If you are content with th ...
- linux 多进程绑定问题
硬件中断发生频繁,是件很消耗 CPU 资源的事情,在多核 CPU 条件下如果有办法把大量硬件中断分配给不同的 CPU (core) 处理显然能很好的平衡性能.现在的服务器上动不动就是多 CPU 多核. ...
- hdu 4956(思路题)
Poor Hanamichi Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- AC日记——[Ahoi2009]Seq 维护序列seq bzoj 1798
1798 思路: 维护两个标记: 乘:m 和 加:a 先下放乘,再下放加: 下放乘的时候要把子节点的加一块乘了: 开long long: 来,上代码: #include <cstdio> ...
- JWT在PHP使用及问题处理
官网 https://jwt.io/ 3.0版本 https://github.com/lcobucci/jwt 安装 composer require lcobucci/jwt 依赖 PHP 5.5 ...
- 【转】java:多网卡环境下获取MAC地址
http://blog.csdn.net/10km/article/details/78569962 JDK6以后 java.net.NetworkInterface提供了完整的方法用于获取网络设备信 ...
- 查看tomcat启动文件都干点啥---Catalina.java
在前一章查看tomcat启动文件都干点啥---Bootstrap.java中我们得出结论,在Bootstrap中通过反射调用Catalina类中的getServer,start,stop,stopSe ...
- PostgreSQL 10.0 preview 功能增强
https://yq.aliyun.com/users/1384833841157402?spm=5176.100239.blogrightarea51131.3.yI7e9d
- html中常用的标签小结
内容详细标签: <h1>~<h6>标题标签<pre>格式化文本<u>下划线(underline)<i>斜体字(italics)<cit ...
- Android Retrofit使用教程
Square公司开源了许多优秀的库,Retrofit就是其中之一. Retrofit是用来简化APP访问服务器API,如果你的服务器使用的使RESTAPI,那么赶紧使用Retrofit吧. 官方的文档 ...