java 自定义标签实现的_Java实现自定义标签的步骤——带你实现自己的标签
一、自定义标签:
使用标签的好处:使用方便、简洁、实现代码重用
二、自定义标签的形式:
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实现自定义标签的步骤——带你实现自己的标签相关推荐
- java如何映射mysql枚举_java中自定义枚举enum映射到mysql数据库字段处理器handler
mybatis中默认的处理枚举类型的handler有 如果要处理一些特殊的情况下字段内容字段的转换,需要自定义处理器,比如如下例子要处理数据库中默认字段值为""空字符串的问题 im ...
- java实现一个gui面板_JAVA GUI自定义JPanel画板背景
自定义JPanel面板背景 一.前言 1.GUI全称是Graphical User Interface,就是图形用户界面.JAVA的GUI应用广泛在我们生活中也很常见.很多应用使用该GUI编程设计,像 ...
- java自定义类创建数组_java 创建自定义数组
1.java创建自定义类数组方法: student []stu = new student[3]; for(int i = 0; i < 3; i ++) { stu[i] = new stud ...
- java数组空指针一场_Java使用自定义类数组报空指针异常
一开始自定义了一个学生类,类里面有几个属性.因为有很多个学生,所以想将这个类声明成数组使用,但是当我通过不同的下标给数组里不同对象赋值的时候一直报空指针异常 一开始代码是这样的 package _4_ ...
- 导入的java文件不显示文字_java 引入自定义字体font后出现的硬盘吃光的问题
有个需求要用美术字体在图片上写字 用自定义的文字有两个方法: Font dynamicFont = Font.createFont(Font.TRUETYPE_FONT, InputStream in ...
- java web 上传附件_JAVA WEB文件上传步骤
JAVA WEB文件上传步骤如下: 实现 Web 开发中的文件上传功能,两个操作:在 Web 页面添加上传输入项,在 Servlet 中读取上传文件的数据并保存在本地硬盘中. 1.Web 端上传文件. ...
- java怎么在cmd运行_java在cmd运行的步骤
java在cmd运行的步骤 发布时间:2020-06-29 17:15:40 来源:亿速云 阅读:77 作者:Leah 本篇文章给大家分享的是有关java在cmd运行的步骤,小编觉得挺实用的,因此分享 ...
- java 获取类的注解_Java 自定义注解通过反射获取类、方法、属性上的注解
反射 JAVA中的反射是运行中的程序检查自己和软件运行环境的能力,它可以根据它发现的进行改变.通俗的讲就是反射可以在运行时根据指定的类名获得类的信息. 注解的定义 注解通过 @interface 关键 ...
- java 自定义循环标签_Jsp2.0自定义标签(第二天)——自定义循环标签
今天是学习自定义标签的第二天,主要是写一个自定义的循环标签. 先看效果图: 前台页面Jsp代码 String[]array = new String[]{"one","t ...
最新文章
- 高效率开发必备!!!!
- 文巾解题455. 分发饼干
- iphone 使用委托(delegate)在不同的窗口之间传递数据
- c++ public 函数名相同_C++虚函数、重载、覆盖
- luogu3413 萌数
- idea上安卓 Android SDK的安装
- 使用mvc2里面的area让网站更有条理
- 【codevs5037】线段树练习4加强版
- 数据-第17课-栈课后练习
- WinHex license添加(v19测试可用)
- Android打造自定义通用popWindow
- Android Studio 开关控件Switch使用
- 三维数字沙盘电子沙盘MR AR VR虚拟现实无人机倾斜摄影三维全景建模卫星图片矢量
- 2021-05-11PLC通信Libnodave-明天继续
- 深度搜索算法(DFS)
- SPI Flash芯片W25Q32英文版数据手册解读(一)---------引脚功能,工作模式
- CSS3 画皮卡丘
- 安全狗陈荣有:打造“即开即用”的云原生安全能力
- 计蒜客--蒜头君回家
- 无需人工标注位置,一键在Web端CAD图上根据测点编号自动标注位置