文章目录

  • Tag文件与Tag标记
    • Tag文件
      • Tag文件的结构
      • Tag文件的保存
    • Tag标记
      • Tag标记
      • Tag标记的使用
    • Tag文件中的常用指令
      • tag指令
      • variable指令
      • taglib指令

Tag文件与Tag标记

Tag文件可以被JSP页面动态加载调用,实现代码的复用

Tag文件

Tag文件的结构

  • 普通的HTML标记符
  • 某些特殊的指令标记
  • 成员变量声明和方法的定义
  • Java程序片 Java表达式
    例:oddNumberSum.tag
<%@ tag pageEncoding="utf-8" %>
<p style="font-family:宋体;font-size:36">
1~100内的奇数之和:
<%  int sum=0,i=1;for(i=1;i<=100;i++){if(i%2==1)sum=sum+i;}out.println(sum);
%>
</p>

Tag文件的保存

Tag文件必须保存在某个Web服务目录下,具体目录结构:
ch3\WEB-INF\tags
其中WEB-INF\tags是固定的目录名称。ch3是Web服务目录,也就是jsp文件所在的目录。

保存时,要按Tag文件中指定的编码保存,如:上面例子中是utf-8编码,则在保存时将编码选择为“UTF-8"编码。

Tag标记

Tag标记

JSP页面必须通过Tag标记来调用一个Tag文件。标记名字和文件名字一致。

<Tag文件名 />
或
<Tag文件名> 其他内容</Tag文件名>

Tag标记的使用

在JSP页面使用Tag标记调用Tag文件前,必须使用taglib指令标记引入该Web服务目录下的标记库。

引入库:
<%@ taglib tagdir="/WEB-INF/tags" prefix="computer"%>
使用prefix属性指定的前缀调用:
<computer:Tag文件名/>
冒号左右不要有空格

调用上面提到的tag文件:

<%@ page contentType = "text/html" %>
<%@ page pageEncoding = "utf-8" %>
<%@ taglib tagdir = "/WEB-INF/tags" prefix = "computer"%>
<HTML><body bgcolor = cyan>
<h1>调用Tag文件计算100内奇数和:</h1>
<computer:oddNumberSum /> <%-- 使用Tag标记 --%>
</body></HTML>

Tag文件中的常用指令

tag taglib include attribute variable

tag指令

类似于page指令
<%@ tag属性1=”属性值“>
(1)language指令:指定Tag文件的脚本语言,只能取Java
(2)include指令:
(3)attribute指令:让使用它的JSP页面向该Tag文件传递需要的数据。

<%@ attribute name="对象名字" [required="true"|"false"][ type="对象的数据"]%>

type必须使用包名,例如:java.lang.Double。默认类型为java.lang.String。
attribute name 是要传递的对象的名字。
required为true时,调用tag文件必须向name中对象传递一个引用。
myTag文件中有一个result对象,等待JSP页面传递一个Double型引用:

<%@ attribute name="result" required="true" type="java.lang.Double"%>

调用并传递一个参数给变量result:

<computer:myTag  result="new Double(3.1415926)"/>

variable指令

将Tag文件中的对象返回给调用Tag文件的JSP页面

<%@ variable name-given="对象名" variable-class=”对象类型"  scope="有效范围"%>

name-given:Tag文件中要返回给JSP的对象。
variable-class:对象的类型,必须带有包名,默认java.lang.String
scope:取值AT_BEGIN、NESTED和AT_END,分别代表可以在标记体中和标记后使用该对象、只能在标记体中使用、只能在标记结束后使用。

只有将返回的对象名和该对象的引用存储到Tomcat服务器提供 的内置对象jspContext中,JSP页面才能使用该对象。
存储名字是time的LocalDate对象及该对象的引用:

jspContext.setAttribute("time",LocalDate.now());

Tag文件同时使用variable指令和attribute指令,则前者的name-given和后者的name给出的对象不能相同(否则出现编译错误)

taglib指令

引入标记库

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

JSP实用教程(3)——Tag文件和Tag标记相关推荐

  1. JSP实用教程-第三章Tag文件与Tag标记

    目录 3.1 Tag文件 3.1.1Tag文件的结构 3.1.2Tag文件的保存 3.2 Tag标记 3.2.1 Tag文件和Tag标记 3.2.2 Tag标记的使用 3.2.3 Tag标记的运行原理 ...

  2. Tag文件和Tag标记的用法详解

    Tag文件和Tag标记 目录 1.为什么要使用Tag文件 2.Tag文件的结构 3.Tag文件的存储目录 4.Tag标记 5.Tag文件中常用的指令 1)tag指令 2)attribute指令 3)v ...

  3. Tag文件与Tag标记

    目录: 1.Tag文件 2.Tag标记 3.Tag文件中的常用指令 1.1Tag文件的结构 Tag文件 的拓展名为.Tag的文本文件,其结构与JSP文件类似.一个Tag文件可以有普通的HTML标记符. ...

  4. C#实用教程-操作xml文件

    C#实用教程-操作xml文件 C#实用教程-操作xml文件 引言:什么是xml文件 Xml的特征 Xml的格式 与HTML的区别 对Xml进行操作 读取xml文件: 当前xml文件内容如下: 创建xm ...

  5. java自定义tag,tag文件与tag标记,java自定义标签

    上一篇我们讲了如何使用TAG简化我们的basePath获取,现在我们再来谈谈TAG另外的一个用处,使用场景说明:很多时候,我们从后台获取的时间参数(从数据库中读取的)是这种格式的:1994123012 ...

  6. JSP实用教程——第二章JSP语法

    目录 2.1 JSP页面的基本结构 2.2 声明变量和定义方法 2.2.1 声明变量 2.2.2 定义方法和类 2.3 Java程序片 2.4 Java表达式 2.5 JSP指令标记 2.5.1 pa ...

  7. java web JSP实用教程第二章

    JSP页面的基本结 普通的HTML标记和JavaScript标记<!-JSP指令标记--> JSP标记,如动作.指令标记<% @  %> 变量的方法和声明<%!  %&g ...

  8. JSP实用教程第二章-JSP语法

    目录 前言 2.1 JSP页面的基本结构 2.2声明变量和定义方法 2.2.1 声明变量 2.22 定义方法和类 2.3Java程序片 2.4Java表达式 2.5 JSP中的注释 2.6 JSP指令 ...

  9. 《JSP实用教程(第4版)》第2章学习笔记

    1.jsp组成结构 java由下面五种结构组成: html标记和js标记 变量及方法的声明 JAVA程序片 JAVA表达式 2.变量及方法的声明 声明变量 格式:<%!(声明变量)%> 位 ...

  10. JSP实用教程-JSP语法

    目录 一.JSP页面的基本结构 一个JSP页面可由5种元素组合而成: 1.普通的HTML标记和JavaScript标记: 2.JSP标记,如指令标记.动作标记: 3.变量和方法的声明: 4.Java程 ...

最新文章

  1. ionic中的ion-option-button
  2. 【PAT乙级】1079 延迟的回文数 (20 分)
  3. 深度解密Go语言之基于信号的抢占式调度
  4. 「前端工程化」该怎么理解?
  5. 中断占据CPU时间的计算问题
  6. python进阶(一)
  7. C语言程序的语法规范,C语言程序结构和语法规则
  8. php音乐地址外链,音乐外链地址的获取
  9. 利用webmagic爬去招聘信息,并输入到Hbase数据库中
  10. 机器人周志_关于机器人的日记
  11. 虚拟机安装linux的\/root,pt深海湛蓝爆屏图 -官网
  12. Beta阶段站立会议-01
  13. 复现0ctf blog
  14. 幸福和不幸福是对比出来的
  15. 将录音转成文字的方法
  16. 解决 WARNING: Published ports are discarded when using host network mode 问题
  17. Windows 10 Excel批量导入打印条形码标签免费工具介绍
  18. Web漏洞之SSRF攻击汇总
  19. Android实现自定义锁屏控制
  20. 聊一聊深度学习做寿命预测

热门文章

  1. oracle用户删除了可以恢复吗,恢复用户误删除的没备份的Oracle数据文件
  2. 为什么选择springcloud作为微服务架构
  3. Angr安装与使用之安装篇
  4. 00_kubernetes组件版本和配置策略
  5. Web开发:布局视口、视觉视口、理想视口
  6. python中的os模块几个常用的方法
  7. poj 1011 - sticks - dfs + 剪枝
  8. java 读文件 解析
  9. 系统整理 精讲 swift 泛型
  10. printf 格式化最常用用法