java web 开发——第三章Tag文件与Tag标记

文章目录

前言
Tag文件与Tag标记
       Tag文件
           
  Tag文件的结构
             Tag文件的保存
      Tag标记
            Tag标记的使用
            Tag文件中的常用指令
     tag指令 
           variable指令
            taglib指令
    总结


前言

本章内容为Tag文件的结构、Tag标记和Tag文件中的常用指令。难点是Tag文件中的常用指令中的attribute指令和variable指令 


Tag文件与Tag标记

Tag文件可以被JSP页面动态加载调用,实现代码的复用

Tag文件

Tag文件的结构

  • 普通的HTML标记符
  • 某些特殊的指令标记
  • 成员变量声明和方法的定义
  • Java程序片 Java表达式
    例:oddNumberSum.tag
    <%@ tag pageEncoding="utf-8" %>
    <p style="font-family:宋体;font-size:36">
    1~100内的奇数之和:
      <%  int sum=0,i=1;
             for(i=1;i<=100;i++){
                if(i%2==1)
                   sum=sum+i;
            }
            out.println(sum);
      %> 
    </p>
    

          tip:Tag文件扩展名为.tag的文本文件

Tag文件保存

tag文件必须在该 Web 服务目录下,建立如下的目录结构:
Web 服务目录\WEB- INE\tags
例如:
ch3\WEB- INF\tags
其中的 WEB-INF(字母大写)和 tags 都是固定的目录名称,而 tags 下的子目录的名称可由用户给定。

Tag 文件的编码

保存 Tag 文件时按照 Tag 文件指定的编码保存,
<%@ tag pageEncoding = "utf - 8”%>
指定的编码是 UTF-8,因此需要按照 UTF-8 编码保存 Tag 文件。

Tag标记

         Tag标记与Tag文件
某个 Web 服务目录下的 Tag文件只能由该 Web服务目录中的 JSP页面调用,JSP页面必须通过Tag标记来调用一个Tag文件
   Tag标记的名字和Tag文件的名字一致

<Tag文件的名字 />
或
<Tag文件的名字> 其他内容(称为标体内容)</Tag文件的名字>

        Tag 标记的使用
   
一个JSP 页面通过使用 Tag 标记来调用一个 Tag 文件。Web 服务目录下的一个JSP页面在使用 Tag 标记来调用一个Tag文件之前,必须首先使用 taglib标记引人该 Web服务目录下的标记库,只有这样,JSP 页面才可以使用 Tag标记调用相应的 Tag 文件。    

taglib指令格式如下:
<%@ taglib tagdir="标记库的位置" prefix="前缀"%>
例如:
<%@ taglib tagdir = "/WEB-INF/tags" prefix = "computer"%>

tip:JSP页面使用 Tag 标记时,冒号:的左右不要有空格

<%@ page contentType = "text/html" %>  
<%@ page pageEncoding = "utf-8" %> 
<%@ taglib tagdir = "/WEB-INF/tags" prefix = "computer"%>
<HTML><body bgcolor = cyan>
<h1>调用Tag文件计算100内奇数和:</h1>
<computer:oddNumberSum /> <%-- 使用Tag标记 --%>
</body></HTML>  

Tag 文件中的常用指令

Tag 文件中经常使用的指令有 tag、taglib、includeattribute,variable。

         tag 指令

     类似于page指令
<%@ tag属性1=”属性值“>
(1)language指令:指定Tag文件的脚本语言,只能取Java
(2)include指令:JSP文件类似
(3)attribute指令:让使用它的JSP页面向该Tag文件传递需要的数据。

<%@ tag 属性 1="属性值”属性 2=属性值”... 属性 n="属性值”*>
<%@ attribute name="对象名字" [required="true"|"false"][ type="对象的数据"]%>

type必须使用包名,例如:java.lang.Double。默认类型为java.lang.String。
attribute name 是要传递的对象的名字。
required为true时,调用tag文件必须向name中对象传递一个引用。
myTag文件中有一个result对象,等待JSP页面传递一个Double型引用:

<%@ attribute name="result" required="true" type="java.lang.Double"%>

调用并传递一个参数给变量result:

<computer:myTag  result="new Double(3.1415926)"/>

 variable 指令

Tag文件通过使用 artribute 指令,可以使得调用该 Tag 文件的 JSP 页面动态地向其传过数据。
将Tag文件中的对象返回给调用Tag文件的JSP页面

<%@ variable name-given="对象名" variable-class=”对象类型"  scope="有效范围"%>

name-given:Tag文件中要返回给JSP的对象。
variable-class:对象的类型,必须带有包名,默认java.lang.String
scope:取值AT_BEGIN、NESTED和AT_END,分别代表可以在标记体中和标记后使用该对象、只能在标记体中使用、只能在标记结束后使用。

对象的返回

Tag 文件为了给JSP 页面返回一个对象,就必须将返回的对象的名字以及该对象的引用存储到 Tomcat 服务器提供的内置对象 jspContext 中。Tag 文件只有将对象的名字及其引用存储到jspContext 中,JSP 页面才可以使用该对象。
比如,Tag 文件的 variable 指令:

<%@variable name-given="time"
variable - class = "java. time.LocalDate" scope = "AT_END" %>

为JSP 页面返回名字是 time的 LocalDate 对象。那么 Tag 文件中必须让 jspContext 调用
方法存储名字是 time 的对象以及该对象的引用

jspContext.setAttribute("time",LocalDate.now());

taglib指令

引入标记库

<%@ taglib tagdir="/WEB-INF/tags" prefix="computer"%>

总结

以上就是本章内容,主要介绍Tag文件的结构、Tag标记和Tag文件中的常用指令。与JSP文件有一些区别。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值