二維碼
        企資網

        掃一掃關注

        當前位置: 首頁 » 企資頭條 » 專題 » 正文

        Java教程_IterationTag接口使用

        放大字體  縮小字體 發布日期:2021-12-12 18:01:43    作者:付湛曦    瀏覽次數:38
        導讀

        在自定義標簽得開發過程中,有時需要對標簽體得內容進行重復處理,這時,可以使用IterationTag接口,它繼承自Tag 接口,在Tag接口基礎上新增了一個 EVAL_BODY_AGAIN常量和一個 doAfterBody()方法,具體如下。1. EVAL

        在自定義標簽得開發過程中,有時需要對標簽體得內容進行重復處理,這時,可以使用IterationTag接口,它繼承自Tag 接口,在Tag接口基礎上新增了一個 eval_BODY_AGAIN常量和一個 doAfterBody()方法,具體如下。

        1. eval_BODY_AGAIN常量

        eval_BODY_AGAIN常量是doAfterBody()方法得返回值,如果doAfterBody()方法返回該常量,JSP容器會把標簽體得內容重復執行一次。

        2. int doAfterBody()方法

        JSP容器在每次執行完標簽體后會調用doAfterBody()方法,該方法可以返回常量SKIP_BODY和eval_BODY_AGAIN。如果方法返回SKIP_BODY常量,JSP容器回執行代表結束得標簽得doEndTag()方法,如果返回eval_BODY_AGAIN,則重復執行標簽體。

        為了讓讀者更好地學習IterationTag接口,接下來通過一個案例演示如何使用IterationTag接口實現重復執行標然休得功能,具體步驟如下。

        (1)編寫標簽處理器類。

        建Web工程chapter1,并在工程下編寫標簽處理器類Iterate.java。由于TagSupport類實現了IterationTag接口,為了簡化程序得編寫,我們定義得標簽處理器類只需繼承TagSupport類即可,Iterate.java類得實現代碼如下代碼所示。

        package cn.itcast.chapter01.classisctag;import javax.servlet.jsp.JspException;import javax.servlet.jsp.tagext.*;public class Iterate extends TagSupport { //定義變量 private int num; //提供num屬性得setter方法 public void setNum(int num) { this.num = num; } //執行一次標簽體 public int doStartTag() throws JspException { return Tag.eval_BODY_INCLUDE; } //根據屬性值對標簽體進行執行 public int doAfterBody() throws JspException { num--; if (num > 0) { return eval_BODY_AGAIN; } else { return SKIP_BODY; //跳過標簽體 } }}

        在上面代碼中,成員變量num用于接收標簽num屬性得值,用來決定標簽體得執行次數。由于doStartTag()方法得返回值為eval_BODY_INCLUDE,在執行doAfterBody()方法之前,標簽體已經執行了一次,因此在doAfterBody()方法中判斷if條件之前先將num得值自減一次。

        (2)注冊標簽處理器類。

        在mytag.tld文件中增加一個Tag元素,對標簽處理器類進行注冊,注冊信息如下所示。

        <tag> <name>iterate</name> <tag-class>cn.itcast.chante-01.c1assisctaa.Iterate</tag-class> <body-content>JSP</body-content> <attribute> <name>num</name> <required>true</required> </attribute></tag>

        (3)編寫JSP頁面iterate.jsp。

        在JSP頁面中使用標簽,將num屬性得值設置為5,同時將標簽體得內容設置為“hello.itcast!” 。iterate.jsp頁面如上面所示。

        <%等page language="java" pageEncoding="GBK"%><%等taglib uri="感謝分享特別itcast感謝原創分享者" prefix= "itcast"%><html> <head> <title>iterate Tag</title> </head> <body> <itcast:iterate num="5"> hello,itcast!<br/> </itcast:iterate> </body></html>

        (4)啟動Tomcat服務器,在瀏覽器地址欄中輸入“感謝分享localhost:8080/chapter01/iterate.jsp”訪問iterate.jsp頁面,可以發現,在瀏覽器中標簽體內容“hello,itcast!”顯示了5遍。說明編寫得自定義標簽實現了重復執行標簽體得功能。

         
        (文/付湛曦)
        打賞
        免責聲明
        本文為付湛曦推薦作品?作者: 付湛曦。歡迎轉載,轉載請注明原文出處:http://www.sneakeraddict.net/news/show-239623.html 。本文僅代表作者個人觀點,本站未對其內容進行核實,請讀者僅做參考,如若文中涉及有違公德、觸犯法律的內容,一經發現,立即刪除,作者需自行承擔相應責任。涉及到版權或其他問題,請及時聯系我們郵件:weilaitui@qq.com。
         

        Copyright ? 2016 - 2023 - 企資網 48903.COM All Rights Reserved 粵公網安備 44030702000589號

        粵ICP備16078936號

        微信

        關注
        微信

        微信二維碼

        WAP二維碼

        客服

        聯系
        客服

        聯系客服:

        在線QQ: 303377504

        客服電話: 020-82301567

        E_mail郵箱: weilaitui@qq.com

        微信公眾號: weishitui

        客服001 客服002 客服003

        工作時間:

        周一至周五: 09:00 - 18:00

        反饋

        用戶
        反饋

        最近中文2019字幕第二页| 无码超乳爆乳中文字幕久久| 小SAO货水好多真紧H无码视频| 在线看无码的免费网站| 人妻丝袜中文无码av影音先锋专区| 中文字幕一区二区三区在线不卡| 精品视频无码一区二区三区| 中文有无人妻vs无码人妻激烈| 一级中文字幕免费乱码专区| 狠狠躁狠狠躁东京热无码专区| 中文字幕高清有码在线中字| 人妻精品久久无码专区精东影业| 亚洲中文字幕日产乱码高清app| 亚洲成av人片在线观看无码不卡| 亚洲精品欧美精品中文字幕| 曰批全过程免费视频在线观看无码| 无码欧精品亚洲日韩一区夜夜嗨| 在线亚洲欧美中文精品| 国产日产欧洲无码视频无遮挡 | HEYZO无码综合国产精品227| 最近2019中文字幕电影1| 精品日韩亚洲AV无码一区二区三区| 亚洲日本中文字幕| 无码av免费一区二区三区试看| 日韩免费在线中文字幕| 亚洲高清无码在线观看| 亚洲av福利无码无一区二区 | 精品一区二区三区中文字幕 | 亚洲人成无码网站| 亚洲av中文无码乱人伦在线r▽| 亚洲AV无码乱码在线观看裸奔| 亚洲色成人中文字幕网站| 人妻aⅴ无码一区二区三区| 久久精品?ⅴ无码中文字幕| 亚洲AⅤ永久无码精品AA| 日韩精品无码久久久久久 | 久久无码国产| 亚洲AV无码欧洲AV无码网站| 中文国产成人精品久久亚洲精品AⅤ无码精品 | 色综合网天天综合色中文男男| 国产精品热久久无码av|