一、自定义标签:

使用标签的好处:使用方便、简洁、实现代码重用

二、自定义标签的形式:

1、标签属性:

2、标签体

(1)无标签体――空标签

(2)有标签体

· 普通文本

· 脚本片断

· 脚本表达式

· EL表达式

· 嵌套标签――子标签

标签体的类型:无默认值,必须指定

三、自定义标签的开发步骤:

1、编写java类――标签处理器

2、编写自定义标签描述文件tld文件

3、在web应用中部署和安装自定义标签库

4、在jsp页面中导入和使用自定义标签

四、用于开发自定义标签的接口和类:p204

API

TagSupport执行流程

BodyTagSupport执行流程

实例:

1、写一个判断用户是否登录的标签类,要完成功能如下:

(1)看session作用域是否存在user属性,如有,则取出用户名,并显示欢迎信息

(控制是否执行标签体的内容)

(2)如果session作用域不存在user属性,则转向至login.jsp,让用户登录

(控制是否执行标签后的内容)

2、定义标签属性的实例:将上面的案例改为转向页面由用户自行指定

添加属性loginPage

添加标签属性的步骤:

3、把存储在request作用域里的List转换为下拉列表框的实例:

动态属性值――使用run time exception指定属性的值

需要在tld文件里指定attribute的属性

4、动态属性的运用实例:根据多个动态属性(数量预先不可知)生成下拉列表框的实例

(1)标签处理类必须实现DynamicAttributes接口

需要实现setDynamicAttribute方法

(2)在tld文件中配置

5、迭代标签输出集合中的元素:标签体是输出部分,所以要对标签体进行循环

标签类

tld文件

Jsp文件

6、修改标签体的实例:extends BodyTagSupport

标签体为www.itcast.cn

输出代码 www.itcast.cn

得到体对应的String

将修改后的体对应的String写入到jsp页面的JspWriter对象中

强化练习:将标签体中的文本改变字号输出多次

五、自定义标签的缓存机制

配置jsp引擎是否使用标签池技术,此配置在tomcat6下无效

六、jsp脚本变量的定义:

七、自定义标签的部署及使用:

1、tld文件在WEB-INF或其子目录中

(1)在web.xml文件中进行部署(此步可省略)

(2)在jsp文件中可采用两种方式引入使用该自定义标签

方法一:指出uri

方法二:指出location

2、tld文件在包含标签处理类及其相关支持类的jar包的META-INF或其子目录中

只能使用指出uri的方式

如下是错误的

setPageContext()

setParent()

SKIP_BODY

返回值

返回值

设置各个属性的setters()方法

执行标签体

EVAL_BODY_INCLUDE

EVAL_BODY_AGAIN

EVAL_BODY_BUFFERED

写入bodyContent

SKIP_BODY

返回值

doInitBody()

EVAL_PAGE

SKIP_PAGE

执行页面剩余部分

返回值

执行标签体

EVAL_BODY_INCLUDE

EVAL_BODY_AGAIN

返回值

设置各个属性的setters()方法

setPageContext()

setParent()

SKIP_BODY

返回值

EVAL_PAGE

doAfterBody()

SKIP_BODY

release()

doEndTag()

doStartTag()

WEB容器实例化标签处理器类

doAfterBody()

SKIP_BODY

release()

doEndTag()

doStartTag()

WEB容器实例化标签处理器类

执行页面剩余部分

返回值

SKIP_PAGE

EVAL_BODY_AGAIN

setBodyContent()

doAfterBody()

java 自定义标签实现的_Java实现自定义标签的步骤——带你实现自己的标签相关推荐

  1. java如何映射mysql枚举_java中自定义枚举enum映射到mysql数据库字段处理器handler

    mybatis中默认的处理枚举类型的handler有 如果要处理一些特殊的情况下字段内容字段的转换,需要自定义处理器,比如如下例子要处理数据库中默认字段值为""空字符串的问题 im ...

  2. java实现一个gui面板_JAVA GUI自定义JPanel画板背景

    自定义JPanel面板背景 一.前言 1.GUI全称是Graphical User Interface,就是图形用户界面.JAVA的GUI应用广泛在我们生活中也很常见.很多应用使用该GUI编程设计,像 ...

  3. java自定义类创建数组_java 创建自定义数组

    1.java创建自定义类数组方法: student []stu = new student[3]; for(int i = 0; i < 3; i ++) { stu[i] = new stud ...

  4. java数组空指针一场_Java使用自定义类数组报空指针异常

    一开始自定义了一个学生类,类里面有几个属性.因为有很多个学生,所以想将这个类声明成数组使用,但是当我通过不同的下标给数组里不同对象赋值的时候一直报空指针异常 一开始代码是这样的 package _4_ ...

  5. 导入的java文件不显示文字_java 引入自定义字体font后出现的硬盘吃光的问题

    有个需求要用美术字体在图片上写字 用自定义的文字有两个方法: Font dynamicFont = Font.createFont(Font.TRUETYPE_FONT, InputStream in ...

  6. java web 上传附件_JAVA WEB文件上传步骤

    JAVA WEB文件上传步骤如下: 实现 Web 开发中的文件上传功能,两个操作:在 Web 页面添加上传输入项,在 Servlet 中读取上传文件的数据并保存在本地硬盘中. 1.Web 端上传文件. ...

  7. java怎么在cmd运行_java在cmd运行的步骤

    java在cmd运行的步骤 发布时间:2020-06-29 17:15:40 来源:亿速云 阅读:77 作者:Leah 本篇文章给大家分享的是有关java在cmd运行的步骤,小编觉得挺实用的,因此分享 ...

  8. java 获取类的注解_Java 自定义注解通过反射获取类、方法、属性上的注解

    反射 JAVA中的反射是运行中的程序检查自己和软件运行环境的能力,它可以根据它发现的进行改变.通俗的讲就是反射可以在运行时根据指定的类名获得类的信息. 注解的定义 注解通过 @interface 关键 ...

  9. java 自定义循环标签_Jsp2.0自定义标签(第二天)——自定义循环标签

    今天是学习自定义标签的第二天,主要是写一个自定义的循环标签. 先看效果图: 前台页面Jsp代码 String[]array = new String[]{"one","t ...

最新文章

  1. 高效率开发必备!!!!
  2. 文巾解题455. 分发饼干
  3. iphone 使用委托(delegate)在不同的窗口之间传递数据
  4. c++ public 函数名相同_C++虚函数、重载、覆盖
  5. luogu3413 萌数
  6. idea上安卓 Android SDK的安装
  7. 使用mvc2里面的area让网站更有条理
  8. 【codevs5037】线段树练习4加强版
  9. 数据-第17课-栈课后练习
  10. WinHex license添加(v19测试可用)
  11. Android打造自定义通用popWindow
  12. Android Studio 开关控件Switch使用
  13. 三维数字沙盘电子沙盘MR AR VR虚拟现实无人机倾斜摄影三维全景建模卫星图片矢量
  14. 2021-05-11PLC通信Libnodave-明天继续
  15. 深度搜索算法(DFS)
  16. SPI Flash芯片W25Q32英文版数据手册解读(一)---------引脚功能,工作模式
  17. CSS3 画皮卡丘
  18. 安全狗陈荣有:打造“即开即用”的云原生安全能力
  19. 计蒜客--蒜头君回家
  20. 无需人工标注位置,一键在Web端CAD图上根据测点编号自动标注位置

热门文章

  1. 蹭网有风险,大伙需谨慎!
  2. 【叶子函数分享十八】人民币小写金额转大写
  3. 【拆机】触摸感应LED台灯
  4. gPhone体验和思考(一)
  5. python爬上去飞卢_pyhon3爬虫爬取飞卢小说网小说
  6. 第一章 MOS管模型
  7. 群雄逐鹿“2011网民最喜爱的软件评选”
  8. 真正的征途从这里开始~~
  9. 2021年安全员-C证(陕西省)最新解析及安全员-C证(陕西省)
  10. shell实现贪吃蛇