JSP实用教程第3章Tag文件与Tag标记

目录

3.1 Tag 文件

3.1.1 Tag文件的结构

3.1.2 Tag文件的保存

3.2 Tag标记

3.2.1 Tag标记与Tag文件

3.2.2  Tag标记的使用

3.2.3  Tag标记的运行原理

3.3 Tag文件中的常用指令

3.3.1 tag指令

3.3.2 include指令

3.3.3 attribute指令

3.3.4 variable指令

3.3.5 taglib指令

总结


3.1 Tag 文件

3.1.1 Tag文件的结构

Tag文件是扩展名为.tag的文本文件,其结构和JSP文件类似。一个Tag文件中可以有普通的HTML标记符、某些特殊的指令标记、成员变量声明和方法的定义、Java程序片和Java表达式。

3.1.2 Tag文件的保存

建立目录结构:

Web服务目录\WEB-INF\tags

其中的WEB-INF(字母大写)和tags都是固定的目录名称,而tags下的子目录的名称可由用户给定。 一个Tag文件必须保存到tags目录或其下的子目录中。

保存Tag文件要按照指定的编码保存。

3.2 Tag标记

3.2.1 Tag标记与Tag文件

Tag标记的名字和Tag文件的名字一致,也就是说,当我们编写了一个Tag文件并保存到特定目录中后,也就给出了一个Tag标记,该标记的格式为:

<Tag文件名字 />
或
<Tag文件名字 > 其他内容(称为标体内容)</Tag文件名字>

3.2.2  Tag标记的使用

JSP页在使用Tag标记来调用一个Tag文件之前,必须首先使用taglib指令标记引入该Web服务目录下的标记库,只有这样,JSP页面才可以使用Tag标记调用相应的Tag文件。

taglib指令的格式如下:

<%@ taglib tagdir="标记库的位置" prefix="前缀">

引入标记库后,JSP页面就可以使用带前缀的Tag标记调用相应的Tag文件,其中的前缀由<taglib>指令中的prefix属性指定。

3.2.3  Tag标记的运行原理

Tomcat服务器处理JSP页面中的Tag标记的原理如下:

(1)如果该Tag标记对应的Tag文件是首次被JSP页面调用,那么Tomcat服务器会将Tag文件转译成一个java文件,并编译这个java文件生成字节码文件,然后执行这个字节码文件(这和执行JSP页面的原理类似)。

(2)如果该Tag文件已经被转编译为字节码文件,Tomcat服务器将直接执行这个字节码文件。 (3)如果对Tag文件进行了修改,那么Tomcat服务器会重新将Tag文件转译成一个java文件,并编译这个java文件生成字节码文件,然后执行这个字节码文件。

3.3 Tag文件中的常用指令

3.3.1 tag指令

类似于JSP文件中的page指令。Tag文件通过使用tag指令可以指定某些属性的值,<%@ tag 属性1="属性值" 属性2="属性值" …属性n="属性值"%> 在一个Tag文件中可以使用多个tag指令,因此我们经常使用多个tag指令为属性指定需要的值:

<%@ tag 属性1="属性值"%>
<%@ tag 属性2="属性值"%>
……
<%@ tag 属性n="属性值"%>

language属性 。只能取值java,其默认值就是java,没有必要使用tag指令指定language属性的值。

import属性。import属性的作用是为Tag文件引入包中的类import属性默认已经有如下值:"java.lang.*"、 "javax.servlet.*"、"javax.servlet.jsp.*"、"javax.servlet.http.*"。

 pageEncoding属性。该属性指定Tag文件的字符编码,其默认值是ISO-8859-1。目前,为了避免显示信息出现乱码现象,Tag文件需要将该属性值设置为utf-8。

3.3.2 include指令

Tag文件中也有和JSP文件类似的include指令标记,其使用方法和作用与JSP文件中的include指令标记类似。

3.3.3 attribute指令

一个Tag文件允许使用它的JSP页面向该Tag文件传递数据。在Tag文件中通过使用attribute指令让使用它的JSP页面向该Tag文件传递需要的数据。

<%@ attribute name="对象名字" required="true"|"false" type="对象的类型"%>

3.3.4 variable指令

Tag文件通过使用variable指令可以将Tag文件中的对象返回给调用该Tag文件的JSP页面。

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

scope的值可以取:AT_BEGIN、NESTED和AT_END。

Tag文件为了给JSP页面返回一个对象,就必须将返回的对象的名字以及该对象的引用存储到Tomcat服务器提供的内置对象jspContext中。

jspContext.setAttribute("对象的名字",对象的引用)

3.3.5 taglib指令

<%@ taglib tagdir="自定义标记库的位置" prefix="前缀">

一个Tag文件也可以使用几个taglib指令标记引入若干个标记库

<%@ taglib tagdir="/WEB-INF/tags" prefix="beijing"%>
<%@ taglib tagdir="/WEB-INF/tags/tagsTwo" prefix="dalian"%

总结

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值