第三章 Tag文件与Tag标记

3.1 Tag文件

3.1.1 Tag文件的结构

Tag文件是扩展名为.Tag的文本文件,其结构与JSP相似,包括普通的HTML标记符、某些特殊的指令标记、成员变量声明和方法的定义、Java程序片和Java表达式

3.1.2 Tag文件的保存

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

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

3.2 Tag标记

3.2.1 Tag文件和Tag标记

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

<Tag 文件名字/>

<Tag 文件名字>标体内容</Tag 文件名字>

3.2.2 Tag标记的使用

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

<%@taglib tagdir="标记库的位置"prefix=“前缀”> //引入标记库

引入标记库后,JSP页面可使用带前缀的Tag标记调用相应的Tag文件,格式:

<“前缀”:Tag去掉扩展名后的文件名/>

如:computer:oddNumberSum调用文件名为oddNuberSum.tag的Tag文件。

3.2.3 Tag标记的运行原理

如果该Tag标记对应的Tag文件是首次被JSP页面调用,那么Tomcat服务器会将Tag文件转译成一个Java文件,并编译这个Java文件生成字节码文件,然后执行这个字节码文件(这和执行JSP页面的原理类似)。
如果该Tag文件已经被转编译为字节码文件,Tomcat服务器将直接执行这个字节码文件。
如果对Tag文件进行了修改,那么Tomcat服务器会重新将Tag文件转译成一个Java文件,并编译这个Java文件生成字节码文件,然后执行这个字节码文件。

3.3 Tag文件中的常用指令

3.3.1 Tag指令

tag指令语法:

<%@tag 属性1=“属性值” 属性2=“属性值”…%

<%@tag 属性1=“属性值” %>

<%@tag属性2=“属性值”%>

<%@tag属性n=“属性值”%>

  1. language属性

作用:指定脚本语言

目前只能取值java,默认值为java,故无需指定。

  1. import属性

作用:为Tag文件引入包中的类

可取多值,默认值有:“java.lang." "java.servlet.” “java.servlet.jsp." "javax.servlet.http.

  1. pageEncoding属性

作用:指定Tag文件的字符编码

默认值为ISO-8859-1,为了避免信息出现乱码,需要将属性设置为utf-8.

3.3.2 include指令

其作用方法与JSP文件中的include指令标记类似.

3.3.3 attribute指令

格式为:

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

作用:让使用该指令的JSP页面向该Tag文件传递需要的数据.

3.3.4 variable指令

指令格式:

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

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

属性name-given:是返回给JSP页面的对象,必须标识符规定(即可由字母数字下划线美元符号数字组成,且第一个字符不能为数字).

属性variable-class:必须带有包名

属性scope:指定对象的有效范围,值可取AT_BEGIN,NESTED,AT_END.

3.3.5 taglib指令

JSP页面或Tag文件都可以使用taglib指令引入标记库,可使用多个taglib指令标记引入若干标记库。

指令格式为:

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

总结

以上就是今天要讲的内容,本文简单介绍了Tag文件与Tag标记的使用。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值