cookie:用于获取指定的Cookie值? 如:
${param.name} ${param[“name”] } 以上两个返回结果相同 ${header.host} ${header[“accept”] } ${initParam[“author”] } ${sessionScope[“user”] } ${cookie[“name”].value }
3、表达式语言的自定义函数
自定义函数的开发步骤非常类似于标签的开发步骤,定义方式也几乎一样。
区别在于:自定义函数必须在表达式语言中使用,而自定义标签则可以直接在页面上生成输出。 i. 开发函数处理类 package el;
public class ElLanguageClass { //对字符串进行反转
public static String reverse(String text){
return new StringBuffer(text).reverse().toString(); }
//统计字符串的个数
public static int countChar(String text){ return text.length(); } }
ii. 使用标签库定义函数
定义函数方法预定义标签库方法类似。在taglib元素下增加tag元素用于定义自定义标签;增加function元素用于定义自定义函数。每个function只要三个子元素即可 name:指定自定义函数的函数名 function-class:指定自定义函数的处理类 function-signature:指定自定义函数的实现方法 如mytaglib.tld
xmlns:xsi=\version=\
xsi:schemaLocation=\http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd\
countChar(java.lang.String)
iii. 在jsp页面中使用函数 先导入标签库,然后再使用函数 如:在jsp页面中
<%@ taglib prefix=\
${myelfunc:reverse(\
5.3.14.3 Tag File支持
Tag File是自定义标签的简化用法,使用Tag File可以无须定义标签处理类和标签库文件,但仍然可以在jsp页面中使用自定义标签。 步骤如下:
1、 建立Tag文件,格式类似于jsp文件。
如同jsp代替servlet作为表现层一样,Tag File则可以代替标签处理类 Tag File有5个编译指令
taglib:作用与JSP文件中的taglib指令效果相同,用于导入其他标签库 include:作用与JSP文件中的include指令效果相同
tag:作用类似于JSP文件中的page指令,有pageEncoding、
body-content等属性,用于设置页面编码等属性
attribute:用于设置自定义标签的属性,类似于标签处理类中的标签属性
variable:用于设置自定义标签的变量,这些变量将传给JSP页面使用
2、 导入标签库,再使用标签。 语法格式如下:
<%@ taglib prefix=”tagPrefix” tagdir=”path” %>
其中tagPrefix用于确定标签前缀,tagdir标签库路径指定tag文件所在的路径。如“/WEB-INF/tags”
3、 Tag File中只有如下几个内置对象,都是与jsp脚本中对应的对象对应 request response session application config out
4、 实例
a) 建立Tag文件iterator.tag,路径为WEB-INF/tags