Tag文件和Tag标记
1 Tag文件
Tag文件是后缀为.tag的文本文件,其结构几乎和JSP相同。可以用有普通的HTML标记、某些特殊标记,成员变量和方法的声明、Java程序片和Java表达式。
可以利用Tag文件进行一些处理,从而实现代码的复用。
1.1 如何调用
如果想在某个WEB服务目录下访问tag文件,那么需要再改web服务目录下建立:WEB服务目录\WEB-INF\tags,然后把tag文件放在tags目录中。这个可以参考webapps/examples中的目录结构。
调用原理:JSP引擎第一次调用该Tag文件的时候,首先转译为字节码,其后的调用可以复用该字节码,但是如果Tag文件有变,那么JSP引擎会对其进行重新转译,这个过程是自动的,不需要重新启动Apache。
如何调用:①声明:在调用Tag的JSP中通过<%@taglib tagdir=”自定义标记库” prefix=”前缀”%>进行声明 例如:<%@taglib tagdir=”/WEB-INF/tags” prefix=”beiing”%>;②调用:<前缀:tag文件名/>例如<Beijing:Addsum/>或者<Tag文件名> 标记体<Tag文件名/>
2 Tag中常用指令
2.1 tag指令
Tag文件通过tag指令进行属性设定。语法:
<%tag 属性1=”属性值” 属性2=”属性值” …%>
body-content属性:决定是否有标记体。值有:empty(调用时无标记体)/tagdependent(可有可无;如果有,按文本处理)/scriptless(可有可无&&如果有,则标记体中无Java程序片);默认为scriptless.
language属性:只能java
import属性:为Tag文件引入java核心包中的类
pageEncoding属性:Tag文件字符编码,默认为iso-8850-1.
2.2 attribute
JSP页面向Tag文件调用时传递数据。格式:
<%@ attribute name=”对象名称” required=”true”|”false” type=”对象类型”%>
说明:在Tag文件中定义好JSP传来的参数。
在JSP进行参数的传递:方式1:<前缀:Tag文件名 对象名=”对象引用”/>
方式2:<前缀:Tag文件名 对象名=”..”>标记体<…>
2.3 variable指令
通过variable指令,Tag文件将某些数据返回给JSP页面。
指令格式:
<%@variable name-given=”对象名称” variable-class=”对象类型” scope=”有效范围”%>
如何用:①在Tag中调用jspCpontext.setArribute(“对象名”,对象)存储到tomcat的内置对象中②在Tag中定义variable语句。③只有JSP页面调用Tag之后,才能使用返回的对象。
练手:
1.字体显示
JSP文件
<%@page contentType="text/html; charset=GB2312" %> <%@taglib tagdir="/WEB-INF/tags" prefix="beijing" %> <HTML><BODY bgcolor="cyan"> <FONT Size=4> <h3>一下是调用tag文件的效果:</h3> <beijing:AddSum/> </FONT></BODY></HTML>相应的Tag文件:AddSum.tag
<%@ tag pageEncoding="GB2312" %> <P>这是一个Tab文件,负责计算在1~100内的奇数之和 <% int sum=0,i=1; for(i=1;i<=100;i++){ if(i%2==0) sum=sum+i; } out.println(sum); %>