7.1 tagfile简介
7.1 tagfile简介
tag file
从两个方面简化了自定义标签的开发。
- 首先,**
tag file
无须提前编译,直到第一次被调用才会被编译。除此之外,仅仅使用JSP
语法就可以完成标签的扩展定义**,这意味着不懂Java
的人也能够进行标签自定了。 - 其次,标签库描述文件也不再需要了。原先需要在标签库描述文件里定义标签元素的名字,以及它所对应的
action
。使用tag file
的方式,由于tag file
名和action
相同,因此不再需要标签库描述文件了。
JSP
容器提供多种方式将tag file
编译成Java
的标签处理类。例如Tomcat
将tag file
翻译成继承于javax.servlet.jsp.tagext.SimpleTag
接口的标签处理类。
一个tag file
和JSP
页面一样,它拥有指令、脚本、EL
表达式、动作元素以及自定义的标签。一个tag file
以tag
和tagx
为后缀,它们可以包含其他资源文件。一个被其他文件包含的tag file
应该以tagf
为后缀。tag
文件必须放在应用路径的WEB-INF/tags
目录下才能生效。和标签处理类一样,tag
文件可以被打到jar
包里。
tag file中可用的隐藏对象
tag file
中也有一些隐藏对象,通过脚本或者EL
表达式可以访问这些隐藏对象。这些隐藏对象和第3章中介绍的JSP隐藏对象类似。
对象 | 类型 |
---|---|
request |
javax.servlet.http.HttpServletRequest |
response |
javax.servlet.http.HttpServletResponse |
out |
javax.servlet.jsp.JspWriter |
session |
javax.servlet.http.HttpSession |
application |
javax.servlet.ServletContext |
config |
javax.servlet.ServletConfig |
jspContext |
javax.servlet.jsp.JspContext |