当前位置:首页 > 生活百科

java调用接口的方法流程(常用接口调用方式)

栏目:生活百科日期:2025-02-10浏览:0

在自定义标签的开发过程中,有时需要对标签体的内容进行重复处理,这时,可以使用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="http://www.itcast.cn" prefix= "itcast"%&>&<html&>    &<head&>        &<title&>iterate Tag&</title&>    &</head&>    &<body&>        &<itcast:iterate num="5"&>            hello,itcast!&<br/&>        &</itcast:iterate&>    &</body&>&</html&>

(4)启动Tomcat服务器,在浏览器地址栏中输入“
http://localhost:8080/chapter01/iterate.jsp”访问iterate.jsp页面,可以发现,在浏览器中标签体内容“hello,itcast!”显示了5遍。说明编写的自定义标签实现了重复执行标签体的功能。

“java调用接口的方法流程(常用接口调用方式)” 的相关文章

cad怎么增加字体(cad安装新字体的方法)

大家好,今天要给大家带来的是关于CAD文字的技巧,篇幅不算大,希望大家用三分钟看完并理解。话不多说,马上进入正题。一、关于镜像后文字方向的问题大家是否有想过,在...

华为小米哪个好用(国产机最建议买的手机)

众所周知,华为和小米一直是我们国产智能手机的佼佼者,在全球市场上的出货量也都是非常高的,尽管华为遭受制裁,但是华为的高端手机Mate系列和P系列一直是高端手机的...

什么是代理记帐,代理记帐的职责和风险

什么是代理记账?代理记账是独立于企业外的代理记账机构,为企业提供财务记账、税务报送、财务咨询等业务的服务活动代理记账的流程第,一步:代理记账机构首先会和企业签定...

入门级单反相机哪个好(7款新手必备的单反相机)

你刚刚接触摄影,觉得手机已经满足不了你的拍摄需求,正想买一款入门级单反相机吗?那么这篇文章将问你提供购买建议。现在无反相机如日中天,但单反相机远远没有到消亡的境...

vncserver配置命令(linux vncserver启动使用方法)

大四上:这学期唯独的一门课&&#8212;“云计算”老师:要求在自己的电脑上安装虚拟机还有Linux我:嫌电脑太重,不想负重去上课。所以直接购买了台腾讯云的服务...

postman导出excel文件(postman变量使用方法)

1.场景提到Postman,大部分的人可能只停留在使用Postman「模拟网络请求」这单一功能上面。事实上,Postman的功能很强大,下面将罗列出几个比较少用...

2023年ios市场占有率(揭晓ios最新排名)

时间已经来到了2021年的2月份,很多手机厂商也是提前发布了新机,一大批的骁龙888手机出现,跑分数据均在70万分以上,目前卖得最好的就是小米11了。相对比热闹...

写文案的技巧和方法有哪些(分享优秀文案写作技巧)

文案不像机械加工,没有通用标准和统一规范。差的文案千篇一律,而好的文案各有各的精彩。正因如此,文案也是一门没有任何门槛的手艺,人人都能写文案,甚至有时候,写得还...

facetime怎么用不了(facetime和微信的区别)

在iOS15和iPadOS15中,已经可以通过创建共享的FaceTime对话链接,让任何人(即使没有Apple设备)也能加入与自己的FaceTime通话。使用这...

华硕怎么更新主板bios(主板刷bios的最简单方法)

英特尔第11代台式机处理器读者朋友们有用上了的吗?由于这一代采用的是全新的架构设计,因此在上市初期这几个月当中,主板厂商肯定会对这一代处理器乃至整套平台进行大幅...