7.1 tagfile简介

7.1 tagfile简介

tag file从两个方面简化了自定义标签的开发。

  • 首先,**tag file无须提前编译,直到第一次被调用才会被编译。除此之外,仅仅使用JSP语法就可以完成标签的扩展定义**,这意味着不懂Java的人也能够进行标签自定了。
  • 其次,标签库描述文件也不再需要了。原先需要在标签库描述文件里定义标签元素的名字,以及它所对应的action。使用tag file的方式,由于tag file名和action相同,因此不再需要标签库描述文件了。

JSP容器提供多种方式将tag file编译成Java的标签处理类。例如Tomcattag file翻译成继承于javax.servlet.jsp.tagext.SimpleTag接口的标签处理类。
一个tag fileJSP页面一样,它拥有指令、脚本、EL表达式、动作元素以及自定义的标签。一个tag filetagtagx为后缀,它们可以包含其他资源文件。一个被其他文件包含的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