第三章:Tag文件与Tag标记

目录

Tag文件的结构

Tag标记的使用

 tag指令

​编辑


JSP的Tag文件与Tag标记是JSP技术中非常重要的一部分。Tag文件是JSP页面中一组自定义标签的集合,而Tag标记则是用于定义自定义标签的语法。学习这两个概念可以帮助我们更好地理解JSP技术的使用和开发。

在学习Tag文件时,我们需要了解它的基本结构和使用方法。Tag文件通常包含两个部分:Tag处理器和Tag标记。Tag处理器是处理自定义标签的Java类,而Tag标记则是定义自定义标签的XML文件。在使用Tag文件时,我们需要在JSP页面中引入Tag文件,并使用自定义标签来调用Tag处理器中的方法。

而在学习Tag标记时,我们需要了解它的语法和使用方法。Tag标记通常包含标签名称、属性、标签体和标签体处理器等部分。使用Tag标记时,我们需要按照规定的语法来定义自定义标签,并在JSP页面中使用自定义标签来调用Tag标记中定义的处理器。

总之,学习JSP的Tag文件与Tag标记是非常重要的,它可以帮助我们更好地理解JSP技术的使用和开发。我们需要了解Tag文件和Tag标记的基本结构和语法,以便在实际开发中更好地应用它们。

Tag文件的结构

Tag文件和JSP文件很类似,可以被JSP页面动态加载调用,实现代码的复用(但用户不能通过该Tag文件所在Web服务目录直接访问Tag文件)

Tag文件是扩展名为.tag的文本文件,其结构和JSP文件类似。一个Tag文件中可以有普通的HTML标记符、某些特殊的指令标记、成员变量声明和方法的定义、Java程序片和Java表达式oddNumberSum.tag是一个简单Tag文件,负责计算100内的全部奇数的代数和。

Tag文件的保存

建立目录结构Web服务目录\WEB-INF\tags

比如ch3\WEB-INF\tags

其中的WEB-INF(字母大写)和tags都是固定的目录名称,而tags下的子目录的名称可由用户给定

一个Tag文件必须保存到tags目录或其下的子目录中。这里oddNumberSum.tag保存到

ch3\WEB-INF\tags

目录中。

Tag标记的使用

引入标记库后,JSP页面就可以使用带前缀的Tag标记调用相应的Tag文件,其中的前缀由<taglib>指令中的prefix属性指定。例如JSP如下使用Tag标记调用相应的Tag文件:

<computer:oddNumberSum />

<%@ 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指令

类似于JSP文件中的page指令。Tag文件通过使用tag指令可以指定某些属性的值,<%@ tag 属性1="属性值" 属性2="属性值" …属性n="属性值"%>

在一个Tag文件中可以使用多个tag指令,因此我们经常使用多个tag指令为属性指定需要的值:

<%@ tag 属性1="属性值"%>

<%@ tag 属性2="属性值"%>

……

<%@ tag 属性n="属性值"%>

language 属性 。只能取值 java ,其默认值就是 java ,没有必要使用 tag 指令指定 language 属性的值。
import 属性 import 属性的作用是为 Tag 文件引入包中的类 import 属性默认已经有如下值: " java.lang .*" " javax.servlet .*" " javax.servlet.jsp .*" " javax.servlet.http .*"
pageEncoding 属性。该属性指定 Tag 文件的字符编码,其默认值是 ISO-8859-1 。目前,为了避免显示信息出现乱码现象, Tag 文件需要将该属性值设置为 utf-8

attribute指令

<%@ page contentType="text/html" %>
<%@ page pageEncoding = "utf-8" %> 
<%@ taglib tagdir="/WEB-INF/tags/example2" prefix="getTriangleArea"%>
<HTML><body bgcolor = yellow >
<p style="font-family:宋体;font-size:36;color:blue">
<%-- 使用Tag标记: --%>
<getTriangleArea:triangle sideA="15" sideB="16" sideC="20"/>
</p>
</body></HTML>

结果:

 代码:

<%@ page contentType="text/html" %>
<%@ page pageEncoding = "utf-8" %> 
<%@ page import="java.util.LinkedList" %>
<%@ page import="java.util.Random" %>
<%@ taglib tagdir="/WEB-INF/tags/example3" prefix="sortNumber"%>
<HTML><body bgcolor = #CCCCCC>
<%  LinkedList<Double> listNumber=new LinkedList<Double>();
    Random random = new Random();
    for(int i =0;i<3;i++) {
       double d = random.nextDouble(); //[0,1)之间的随机数
       listNumber.add(d);
    }  
%>    
<p style="font-family:宋体;font-size:36;color:blue">
排序数据
<sortNumber:sort list="<%= listNumber %>"/>  <%-- 使用Tag标记 --%>
</body></HTML>

代码:

<%@ page contentType="text/html" %>
<%@ page pageEncoding = "utf-8" %> 
<%@ taglib tagdir="/WEB-INF/tags/example4" prefix="getPrice" %>
<HTML><body bgcolor = #FFCCFF>
<% String str = "麻辣豆腐:20.6元,红烧肉:68.9元,烤鸭:199元";
%>
<getPrice:handleData mess="<%= str %>"/>  <%-- 使用Tag标记 --%>
<p style="font-family:宋体;font-size:36">
 菜单:<br>"<%= str %>"<br>价格总和:
<%= price %>         <%-- 使用Tag标记返回的Double对象price --%>
</p>
<% str = "毛巾:2.6元,香皂:6.9元,牙刷:12.3元";
%>
<getPrice:handleData mess="<%= str %>"/>  
<p style="font-family:黑体;font-size:36;color:blue">
购物小票:<br>"<%= str %>"<br>价格总和:
<%= price %>              
</p>
</body></HTML>

 结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值