目录
一.Tag文件的结构
1.Tag文件
Tag文件的结构
Tag文件的保存
建立目录结构:Web服务目录\WEB-INF\tags
比如:ch6\WEB-INF\tags
其中的WEB-INF(字母大写)和tags都是固定的目录名称,而tags下的子目录的名称可由用户给定。
一个Tag文件必须保存到tags目录或其下的子目录中。这里把oddNumberSum.tag保存到
ch6\WEB-INF\tags
目录中。
二.Tag标记
Tag标记通常用于标记HTML或XML文档中的特定元素或段落,以便于搜索引擎和其他应用程序可以更轻松地识别和组织文档内容。在HTML中,常见的标记包括标题标记(<h1>,<h2>等),段落标记(<p>),链接标记(<a>),图像标记(<img>)等。
Tag标记与Tag文件
<Tag文件名字 />
或
<Tag文件名字 > 其他内容(称为标体内容)</Tag文件名字>
一个Tag文件对应着一个Tag标记,把全体Tag标记称之为一个自定义标记库或简称为标记库.
Tag标记的使用
■JSP页在使用Tag标记来调用一个Tag文件之前,必须首先使用taglib指令标记引入该Web服务目录下的标记库,只有这样,JSP页面才可以使用Tag标记调用相应的Tag文件。
taglib指令的格式如下:
<%@ taglib tagdir="标记库的位置" prefix="前缀">
例如:
<%@ taglib tagdir="/WEB-INF/tags" prefix="computer"%>
■引入标记库后,JSP页面就可以使用带前缀的Tag标记调用相应的Tag文件,其中的前缀由<taglib>指令中的prefix属性指定。例如JSP如下使用Tag标记调用相应的Tag文件:
<computer:oddNumberSum />
Tag标记的运行原理
Tomcat服务器处理JSP页面中的Tag标记的原理如下:
(1)如果该Tag标记对应的Tag文件是首次被JSP页面调用,那么Tomcat服务器会将Tag文件转译成一个java文件,并编译这个java文件生成字节码文件,然后执行这个字节码文件(这和执行JSP页面的原理类似)。
(2)如果该Tag文件已经被转编译为字节码文件,Tomcat服务器将直接执行这个字节码文件。
(3)如果对Tag文件进行了修改,那么Tomcat服务器会重新将Tag文件转译成一个java文件,并编译这个java文件生成字节码文件,然后执行这个字节码文件。
Tag标记的运行原理是通过在HTML文档中插入标记来实现的。标记是HTML文档中的一种特殊语法,用于描述文档的结构、样式和行为。标记通常由一对尖括号(< >)包裹着,其中包含标记的名称和属性。
当浏览器加载HTML文档时,它会解析文档中的标记,并根据标记的名称和属性来确定如何显示文档内容。例如,如果文档中包含一个<img>标记,浏览器就会加载该标记中指定的图片,并在页面中显示出来。
三.Tag文件中的常用指令
1.tag指令
Tag指令是一种在服务器端模板引擎中使用的指令,用于定义自定义标签,可以在页面中使用这些标签来生成特定的内容。Tag指令通常包含以下几个部分:
1. Name属性:用于指定自定义标签的名称,该名称在页面中使用该标签时需要引用。
2. Body属性:用于指定标签的主体内容,该内容可以是静态文本或动态表达式。
3. Attributes属性:用于指定标签的属性列表,每个属性包含名称和值两个部分。
4. Tag Handler属性:用于指定标签的处理程序,该处理程序通常是一个Java类或方法,用于生成标签的实际内容。
2.include指令
Include指令是一种在服务器端模板引擎中使用的指令,用于将其他文件中的内容包含到当前页面中。Include指令通常包含以下几个部分:
1. File属性:用于指定要包含的文件路径,可以是相对路径或绝对路径。
2. Charset属性:用于指定要包含的文件的字符集,通常是UTF-8。
3.attribute指令
Attribute指令是一种在服务器端模板引擎中使用的指令,用于定义标签的属性,可以在页面中使用这些属性来控制标签的行为和样式。Attribute指令通常包含以下几个部分:
1. Name属性:用于指定属性的名称,该名称在页面中使用该属性时需要引用。
2. Type属性:用于指定属性的类型,通常是字符串、整数、布尔值等。
3. Default属性:用于指定属性的默认值,如果在页面中未设置该属性,则使用该默认值。
4.variable指令
Variable指令是一种在服务器端模板引擎中使用的指令,用于定义变量并赋值,在页面中可以使用这些变量来控制标签的行为和样式。Variable指令通常包含以下几个部分:
1. Name属性:用于指定变量的名称,该名称在页面中使用该变量时需要引用。
2. Value属性:用于指定变量的值,可以是字符串、整数、布尔值等。
3. Scope属性:用于指定变量的作用域,通常是Request、Session或Application。
5.taglib指令
<%@ taglib uri="" prefix="c"%>
Taglib指令是一种在服务器端模板引擎中使用的指令,用于导入标签库,使得页面中可以使用标签库中定义的标签。Taglib指令通常包含以下几个部分:
1. Prefix属性:用于指定标签库的前缀,该前缀在页面中使用标签时需要引用。
2. Uri属性:用于指定标签库的URI,该URI指向标签库的描述文件,可以是相对路径或绝对路径。