第三章 自定义标签

终极目标:Jsp页面无Java代码块。

解决方案:使用标签(用户自定义 + 系统定义(标准标签库JSTL))。

1. 为什么需要使用标签?

使用标签之后,能够实现jsp页面无java脚本。

Jsp页面更简洁、便于代码的封装、维护更方便。

2. 标签在JavaWeb中的版本分类?

标准1.2版 、标签文件2.0版

3. 标准1.2版使用步骤:

a) 创建一个类,继承自BodyTagSupport类。

b) 重写系统中的方法:doStartTag()、doEndTag();(这些方法中可以写标签中的内容)

c) 在WEB-INF目录中对标签进行配置。(创建配置文件:“*.tld”)

d) 在jsp页面使用标签。(导入标签库: <%@ taglib uri=”配置文件的路径” prefix=”标签文件前缀名”  %>)

注意事项:

1. 独立标签(可以带有属性)。

重写doStartTag()或doEndTag()方法即可。

获取输出流:JspWriter out = super.pageContext.getOut();

2. 带有内容的标签(可以带有属性)。

重写doAfterBody()方法即可。

获取内容:String content = super.bodyContent.getString()

获取输出流:JspWriter out = super.bodyCoent.getEnclosingWriter();

可以在标签处理类中定义属性。

在tld文件中对属性进行配置,jsp页面就可以使用该属性(注意:属性名必须跟配置的名字相同)。

4. 2.0版,简单标签

步骤:

1. 在WEB-INF目录下,创建tags目录。

2. 创建标签文件。命名规则:*.tag

3. 在tag文件中编写标签处理代码(跟jsp语法完全一致)。

<%@ tag pageEncoding=”编码” import=”导入包” %>

………………………………

4. 在jsp中使用。<%@ taglib tagdir=”/WEB-INF/tags” prefix=”前缀名”  %>

<%@ tag pageEncoding="UTF-8" %> //表示当前为标签页面,而不是jsp

<%@ attribute name="count" required="true" rtexprvalue="true" type="java.lang.Integer" %> //定义一个属性

<!-- 将标签中的内容,自动存放在request范围中 -->

<jsp:doBody var="mycontent" scope="request" /> //获取标签中间的内容

<%@ taglib tagdir="/WEB-INF/tags" prefix="xw" %>

自定义标签---word相关推荐

  1. day056-58 django多表增加和查询基于对象和基于双下划线的多表查询聚合 分组查询 自定义标签过滤器 外部调用django环境 事务和锁...

    一.多表的创建 from django.db import models# Create your models here. class Author(models.Model):id = model ...

  2. javaweb学习总结(二十三)——jsp自定义标签开发入门

    一.自定义标签的作用 自定义标签主要用于移除Jsp页面中的java代码. 二.自定义标签开发和使用 2.1.自定义标签开发步骤 1.编写一个实现Tag接口的Java类(标签处理器类) 1 packag ...

  3. [PHP] JQuery+Layer实现添加删除自定义标签代码

    JQuery+Layer实现添加删除自定义标签代码 实现效果如下: 实现代码如下: <!doctype html> <html> <head> <meta c ...

  4. JSP自定义标签rtexprvalue属性

    rtexprvalue的全称是 Run-time Expression Value, 它用于表示是否可以使用JSP表达式.(比如EL表达式或OGNL表达式). 当在<attribute>标 ...

  5. velocity自定义标签和指令

    velocity本身支持自定义标签和指令的扩展, 在 Velocity 模板语言的语法中,以美元符 $ 开头的为变量的声明或者引用,而以井号 # 开头的语句则为 Velocity 的指令(Direct ...

  6. java中velocity定义宏标签_velocity自定义标签和指令(转:zwj)

    velocity本身支持自定义标签和指令的扩展,我们看看扩展指令的步骤及searchweb2的应用场景, 1.使用方法 在 Velocity 模板语言的语法中,以美元符 $ 开头的为变量的声明或者引用 ...

  7. JSP 自定义标签介绍

    自定义标签是用户定义的JSP语言元素.当JSP页面包含一个自定义标签时将被转化为servlet,标签转化为对被 称为tag handler的对象的操作,即当servlet执行时Web containe ...

  8. R语言ggplot2可视化:通过在element_text函数中设置ifelse判断条件自定义标签文本的显示格式:例如、粗体、斜体等

    R语言ggplot2可视化:通过在element_text函数中设置ifelse判断条件自定义标签文本的显示格式:例如.粗体.斜体等 目录

  9. jsp自定义标签学习

    简单的说明: 1,说明---jsp自定义标签: HelloWorld:jsp自定义标签的使用流程: QueryTag:带属性标签的定义以及连接数据库使用: IteratorTag:带标签体的标签定义以 ...

最新文章

  1. 【第三组】用例+功能说明+技术说明
  2. uboot启动流程概述_uboot 分析之 启动流程
  3. c++ map利用迭代器赋值
  4. C# 温故而知新:Stream篇(七)
  5. 工作总结3:axios里面的主要参数
  6. 2017年国内开源镜像站点汇总 1
  7. oracle rac 高并发性能_高并发业务下 JVM 涉及的垃圾回收与性能问题分析与定位...
  8. 人脸识别ArcfaceDemo for Windows 分享
  9. Trick(九)—— ++i 与 i++ 的本质区别
  10. php 生成导出excel,PHP导出生成EXCEL文件
  11. 基站定位php,基于Python的移动联通基站接口调用代码实例
  12. 硬盘IDE模式与AHCI模式的区别
  13. vm内核参数之缓存回收drop_caches
  14. vscode复制代码到wps中怎么不带黑色背景
  15. 一个农村博士的独白:全家为什么只有我读到了博士?
  16. 超详细的ArcGIS生成格网知识汇总
  17. python自学笔记+一个汇率计算PyQt实例
  18. 微信小程序(三)分类界面
  19. 移动端如何在前端阻止input框获得焦点时手机键盘的弹出
  20. 记录keil5下使用RAM调试过程

热门文章

  1. python视觉识别_视觉显著性python_OpenCV—python 图像显著性检测算法—HC/RC/LC/FT
  2. 深鉴科技联合创始人汪玉:针对机器视觉的深度学习处理器(附视频、PPT下载)
  3. 大文件数据安全传输如何做到!
  4. ffmpeg c++ vs2017 将pcm转mp3格式
  5. 10万字基于大数据的智慧城市解决方案word
  6. eclipse 解决启动慢、运行慢的方法总结(最全)
  7. Ranger 和 Ranger Audit 审计功能模块介绍
  8. Win11如何启用或禁用桌面贴纸?
  9. Nash 1951 Non-cooperative Games 部分翻译(含Nash均衡点存在性证明)
  10. Ubuntu16.04虚拟机配置模拟路由器