2021-04-21 22:05  阅读(113)
文章分类:JSP 简单教程 文章标签:JSP
©  原文作者:一点教程 原文地址:http://www.yiidian.com/jsp/

1 JSP自定义标签进行迭代

我们可以使用IterationTag接口的doAfterBody()方法来迭代任何标签的主体内容。

下面示例中,我们将使用实现IterationTag接口的TagSupport类。为了迭代主体内容,我们需要在doAfterBody()方法中使用EVAL_BODY_AGAIN常量。

2 JSP自定义标签迭代示例

在下面示例中,我们将在自定义标签中使用属性,该属性用于设置遍历的次数。

2.1 编写标签处理程序

LoopRecord:

    
    package com.yiidian;
    
    import javax.servlet.jsp.JspException;
    import javax.servlet.jsp.tagext.TagSupport;
    
    /**
     * 一点教程网 - http://www.yiidian.com
     */
    public class LoopRecord extends TagSupport{
        private int number;
        private int counter;
    
        public void setNumber(Integer number) {
            this.number = number;
        }
    
        public int doStartTag() throws JspException {
            return EVAL_BODY_INCLUDE;
        }
    
        public int doAfterBody() {
            counter++;
            if (counter==number)
                return SKIP_BODY;
            else
                return EVAL_BODY_AGAIN;
        }
    
        public int doEndTag() throws JspException {
            return EVAL_PAGE;
        }
    }
    

2.2 编写mytags.tld

mytags.tld:

    
    <?xml version="1.0" encoding="utf-8" ?>
    <!DOCTYPE taglib
            PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
            "http://java.sun.com/j2ee/dtd/web-jsptaglibrary_1_2.dtd">
    
    <taglib>
    
        <tlib-version>1.2</tlib-version>
        <jsp-version>2.0</jsp-version>
        <short-name>c</short-name>
        <uri>yiidian.com</uri>
    
        <tag>
            <name>loopRecord</name>
            <tag-class>com.yiidian.LoopRecord</tag-class>
            <attribute>
                <name>number</name>
                <required>true</required>
            </attribute>
    
        </tag>
    </taglib>

2.3 编写index.jsp

index.jsp:

    
    <%@ page language="java" contentType="text/html;charset=utf-8" %>
    <%@ taglib uri="yiidian.com" prefix="y" %>
    <html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>一点教程网-带属性的JSP自定义标签输出数据库记录</title>
    </head>
    <body>
    
    <y:loopRecord number="5">
        一点教程网<br/>
    </y:loopRecord>
    
    </body>
    </html>

2.4 运行测试

20210421220118_1.png

点赞(0)
版权归原创作者所有,任何形式转载请联系作者; Java 技术驿站 >> JSP自定义标签-迭代
上一篇
JSP自定义标签-属性
下一篇
JSP自定义标签-定制URI