JSP学习笔记之三

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);
%>





你可能感兴趣的:(JSP学习笔记之三)