目录
1.tag指令
tag文件中的tag指令类似于jsp文件中的page指令。Tag文件通过使用tag指令可以指定某些属性的值,以便从总体上影响Tag文件的处理和表示。tag指令的语法如下:
<%@tag属性1="属性值" 属性2="属性值" ...属性n="属性值"%>
1.1.language属性
language属性的值指定Tag文件使用过的脚本语言,目前只能取值java,其默认值就是java,因此在编写Tag文件时,没有必要使用tag指令指定language属性的值。
1.2.import属性
import属性的作用是为了Tag文件引入包中的类,这样就可以在Tag文件的程序片部分,变量及方法定义部分,表达式部分使用包中的类。import属性可以去多个值,import属性默认已有如下值:java.lang.*,javax.servlet.*,javax.servlet.jsp.*,javax.servlet.http.*。
1.3.pageEncoding
该属性指定Tag文件的字符编码,其默认值为ISO-8859-1。目前,为了便面显示信息出现乱码情况,Tag文件需要将该属性值设置为UTF-8。
2.include指令
在Tag文件中也有和jsp文件类似的include指令标记,其使用方法和作用与jsp文件中的include指令标记类似。
3.attribute指令
Tag文件充当着可复用代码的角色,如果一个Tag文件允许使用它的jsp页面向该Tag文件传递数据,就使得Tag文件的功能更为强大。在Tag文件中通过使用attribute指令让使用它的jsp页面向该Tag文件传递需要的数据。attribute指令的格式如下:
<%@attribute name="对象名字" required="ture或false" type="对象的类型"%>
例如Tag1文件myTag.tag中有如下attribute指令:
<%@attribute name="result" required="ture" type="java.lang.Double"%>
那么就相当于Tag文件中有另一个名字是result的对象,但Tag文件不需要创建该对象result,而是等待jsp页面将一个double型的对象的引用传递给result。
attribute指令中的name属性是必需的,该属性的值是一个对象的名字。jsp页面在调用Tag文件时,可想name属性值定的对象传递一个引用。需要注意的是,type在指定对象类型时,必须使用包名,比如,不可以将java.lang.Double简写成Double。如果attribute指令中没有使用type指定对象的类型,那对象的类型默认是java.lang.String类型。
JSP页面使用Tag标记像所调用的Tag文件中name指定的对象传递一个引用,方式如下:
<前缀:Tag文件名字 对象名字="对象的引用"/>
比如,JSP页面使用Tag标记(假设标记的前缀为computer)调用myTag.tag:
<computer :myTag result ="new Double(3.1415926)"/>