Java Web开发——Tag文件与Tag标记

目录

1.Tag文件

1.2Tag标记

1.3Tag文件中的常用指令

1.4运行案例


1.Tag文件

Tag文件是以扩展名为.tag的文本文件,结构与JSP文件类似。Tag文件中可以包含以下几个部分:

  •  HTML标记
  • Tag指令标记
  • 成员变量声明和方法的定义
  • Java表达式
  • Java程序片

Tag文件须放在Web服务目录\WEB-INF\tags,在保存Tag文件时,注意使用utf-8的编码方式。


2.Tag标记

当Tag文件保存到对应目录时,就给出了Tag标记,Tag标记的名字和Tag文件的名字一致,JSP页面在使用Tag文件之前,须首先用taglib指令标记引入该Web服务目录下的标记库,taglib指令格式如下:

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

引入标记库后就可以使用带pregix指定的前缀的Tag标记调用相应的Tag文件,例如:

<computer:oddNumberSum/>

1.3Tag文件中常用的指令

Tag指令:此指令类似与JSP文件中的page指令。Tag文件通过此指令可以指定某些属性的值,其格式如下:

<%@tag的属性1="属性值"%>
<%@tag的属性2="属性值"%>
        .....
<%@tag的属性n="属性值"%>

        常用的有以下属性:

  • language属性:指定Tag文件使用的脚本语言,目前只能取值Java
  • import属性:为Tag文件引入包中的类
  • pageEncoding属性:指定Tag文件的字符编码,如不指定,默认为ISO-8859-1

include指令:与JSP文件中的的include指令作用相同

attribute指令:通过此指令让JSP页面向使用的Tag文件传递需要的数据,格式如下

<%@attribute name="对象名字" required="ture"|"false" type = "对象的类型"%>
例如
<%@attribute name="result" required="ture" type = "java.lang.Double"%>

variable指令:将Tag文件中的对象返回给调用该Tag文件的JSP页面,其格式如下:

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

scope的值可以取:AT_BEGINNESTEDAT_END

1.4运行案例

解析单词

giveText.jsp

<%@ page contentType = "text/html" %>  
<%@ page pageEncoding = "utf-8" %> 
<%@ page import="java.util.Iterator" %>
<%@ taglib tagdir = "/WEB-INF/tags/prictice1" prefix = "getWords"%>
<HTML><body bgcolor = #CCCCFF>
<% String str = "How are you,are you student? where are you from? ";
%>
<getWords:backWords okString ="<%= str %>" /> <%-- 使用Tag标记 --%>
<p style="font-family:宋体;font-size:26">
<%= str %><br>
<%
     Iterator<String> ite = words.iterator(); //使用Tag标记返回的Double对象words
     out.print("使用了"+ words.size()+"个单词:<br>");
     while(ite.hasNext()) {  //遍历集合
        out.print(" "+ite.next());   
     }
%>
</p></body></HTML>  

backWords.tag

<%@ tag import="java.util.HashSet" %>
<%@ tag import="java.util.regex.Pattern" %>
<%@ tag import="java.util.regex.Matcher" %>
<%@ attribute name="okString" required="true" type="java.lang.String" %>
<%@ variable name-given="words" variable-class="java.util.HashSet " 
    scope="AT_BEGIN" %>
<%
    HashSet<String>   set = new HashSet<String>(); //集合不允许有相同的元素
    Pattern pattern;          //模式对象
    Matcher matcher;          //匹配对象
    String regex="[a-zA-Z]+" ;//匹配英文单词
    pattern = Pattern.compile(regex);       //初试化模式对象
    matcher = pattern.matcher(okString);       //初始化匹配对象,用于检索mess
    while(matcher.find()) {
       String str = matcher.group(); 
       set.add(str);
    } 
   //将返回的arrayList对象放在jspContext中:
   jspContext.setAttribute("words",set);
%>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值