当前位置: 首页 > news >正文

自定义标签简介

为什么要使用自定义标签?

JSTL标签库只提供了简单的输出等功能,没有实现任何的HTML代码封装,并且某些复杂类型转换,或者逻辑处理的时候,JSTL标签库完成不了,需要自定义标签!

 

我们可以有两种方式来实现自定义标签:

  • 传统方式,实现Tag接口(老方法)

  • 简单方式,继承SimpleTagSupport类

SimpleTagSupport类的执行顺序(原理):

  • ①WEB容器调用标签处理器对象的setJspContext方法,将代表JSP页面的pageContext对象传递给标签处理器对象

  • ②WEB容器调用标签处理器对象的setParent方法,将父标签处理器对象传递给这个标签处理器对象。【注意,只有在标签存在父标签的情况下,WEB容器才会调用这个方法】

  • ③如果调用标签时设置了属性,容器将调用每个属性对应的setter方法把属性值传递给标签处理器对象。如果标签的属性值是EL表达式或脚本表达式,则WEB容器首先计算表达式的值,然后把值传递给标签处理器对象。

  • ④如果简单标签有标签体,容器将调用setJspBody方法把代表标签体的JspFragment对象传递进来

  • ⑤执行标签时:容器调用标签处理器的doTag()方法,开发人员在方法体内通过操作JspFragment对象,就可以实现是否执行、迭代、修改标签体的目的。

  •  

     

    • doStartTag()方法使用的是SKIP_BODY和EVAL_BODY_INCLUDE这两个变量,判断是否执行标签体的内容。

    • doEndTag()方法使用的是SKIP_PAGE和EVAL_PAGE这两个变量,判断是否执行剩下页面的内容

    • 控制JSP页面内容重复执行和修改JSP页面内容输出后面会有!

    •  

  •  

转载于:https://www.cnblogs.com/hongchengshise/p/10383206.html

相关文章:

  • 一张图知道HTML5布局(图)
  • 七牛云假注销小指南
  • Shell在大数据时代的魅力:从一道百度大数据面试题想到的点滴
  • CentOS7简单部署NFS
  • Axis2发布webservice(1)--0配置发布
  • 从零开始的无人驾驶 1
  • Redis中的lru算法实现
  • 数据库之开源数据库
  • 19-02-19
  • Linux软件包的管理--YUM
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • 自己写代码生成器 (一)
  • Redis的resp协议
  • 炒冷饭系列:设计模式 工厂方法模式
  • 2019年寒假作业2 - 7-1 币值转换
  • ----------
  • 230. Kth Smallest Element in a BST
  • 345-反转字符串中的元音字母
  • Java 23种设计模式 之单例模式 7种实现方式
  • LeetCode算法系列_0891_子序列宽度之和
  • MD5加密原理解析及OC版原理实现
  • Nacos系列:Nacos的Java SDK使用
  • php ci框架整合银盛支付
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • Solarized Scheme
  • 阿里研究院入选中国企业智库系统影响力榜
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 微信公众号开发小记——5.python微信红包
  • 我与Jetbrains的这些年
  • 小程序开发中的那些坑
  • 学习HTTP相关知识笔记
  • 栈实现走出迷宫(C++)
  • ​渐进式Web应用PWA的未来
  • #if 1...#endif
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • $.proxy和$.extend
  • (javascript)再说document.body.scrollTop的使用问题
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (一)UDP基本编程步骤
  • (转)创业家杂志:UCWEB天使第一步
  • (转)四层和七层负载均衡的区别
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • **PHP二维数组遍历时同时赋值
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • .CSS-hover 的解释
  • .Net Redis的秒杀Dome和异步执行
  • [ 常用工具篇 ] POC-bomber 漏洞检测工具安装及使用详解
  • [ 云计算 | AWS ] AI 编程助手新势力 Amazon CodeWhisperer:优势功能及实用技巧
  • [17]JAVAEE-HTTP协议
  • [20160807][系统设计的三次迭代]
  • [2017][note]基于空间交叉相位调制的两个连续波在few layer铋Bi中的全光switch——