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 |