第 17章 自定义标签
JSP 动态网页新技术 1
JSP提供了自定义标签的机制,让设计人员可以自行建立自已的标签,并且在网页上直接使用,这种弹性的设计让 JSP的标签功能可以无限的延伸 。
新版的 JSP简化了自定义标签的设计,用户甚至不用通过 Java就可以直接制作标签,接下来的内容将直接来看看如何通过这些机制进行标签的制作 。
关于自定义标签第 17章 自定义标签
JSP 动态网页新技术 2
标签文件 的重要指令指 令 说 明
tag 设定整个标签文件的内容
taglib 同 JSP网页 taglib指令,使用于标签文件
include 同 JSP网页 include指令,使用于标签文件
attribute 设定标签的参数
variable 设定标签的返回值第 17章 自定义标签
JSP 动态网页新技术 3
attribute指令 与标签参数
将参数传入所设计的标签,必须设定 attribute指令 。
<%@attribute name=paraname
required=true/false %>
– name代表参数名称,paraname在标签文件中被用来代表这个参数的变量 。
– required则表示此参数值是否为必要,若设为 true,在网页当中引用标签的时候,必须传入此参数,若为 false,则此代表其为非必要参数 。
一旦设定了 attribute,用户便可以在标签文件中利用 EL语法运用这些参数值 。
${paraname}
在引用标签的 JSP网页当中,如果要将指定的参数值传入标签,只需要在引用标签的时候,通过参数名称作设定即可,
<mytag:theTag paraname=attributevalue />
第 17章 自定义标签
JSP 动态网页新技术 4
variable指令 与标签返回值
标签指令 variable,该指令的用途在于设定标签返回值 。
<@variable name-given=returnName %>
– variable指令当中的 name-given代表此标签的返回值变量
– 引用标签的网页通过此变量可直接取得其返回的内容第 17章 自定义标签
JSP 动态网页新技术 5
动态属性
动态参数是由指令 tag的 dynamic-attributes属性来设定,该属性值代表引用标签的网页所传入之不定数目的参数集合,
<%@tag dynamic-attributes=dynatt %>
– dynatt包含了所有传入标签的参数,它是一个 Map类型的集合对象,其中的元素以键 (key)/值 (value)成对储存 。
– 利用 map.key来取得代表参数名称的键值,而 map.value则用来取得参数本身所对应的值 。
第 17章 自定义标签
JSP 动态网页新技术 6
Fragment属性
自定义标签接受一整段的程序片段作为参数内容。如果要设定这种类型的参数,
必须将 attribute指令的属性值设为 true 。
<%@attribute name=attributeName fragment="true" %>
在 JSP网页当中,将一整段的程序片段当作参数传入,属性必须使用 <jsp:attribute>
标签作设定 。
<mytag:frgmenttag >
<jsp:attribute name="attributeName" >

</jsp:attribute>
</mytag:fragattributes>
– <jsp:attribute>指定 name属性为所要传入的的参数名称 。
– <jsp:attribute>标签当中,填入的则是要传入自定义标签的内容 。
第 17章 自定义标签
JSP 动态网页新技术 7
引用 自定义标签在自定义标签内容当中,如果想要引用其本身 fragment被设为
true的参数,则必须通过 <jsp:invoke>,并且指定其 fragment属性 。
<jsp:invoke fragment="attributeName " />