设为首页收藏本站language 语言切换
查看: 2059|回复: 0
收起左侧

使用JSP的自定义标签开发(迭代标签)

[复制链接]
发表于 2010-2-20 15:08:57 | 显示全部楼层 |阅读模式
<p >标签的TLD<p ><p ><CENTER><ccid_nobr><table width="400" border="1" cellspacing="0" cellpadding="2"  bordercolorlight = "black" bordercolordark = "#FFFFFF" align="center"><tr><td bgcolor="e6e6e6" class="code" ><pre><ccid_code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot; ?&gt;&lt;!DOCTYPE taglibPUBLIC &quot;-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN&quot;&quot;http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd&quot;&gt;&lt;taglib&gt;  &lt;tlib-version&gt;1.0&lt;/tlib-version&gt;  &lt;jsp-version&gt;1.2&lt;/jsp-version&gt;  &lt;short-name&gt;book&lt;/short-name&gt;  &lt;uri&gt;http://jstlbook.com/tld/weekday.tld&lt;/uri&gt;&lt;tag&gt;  &lt;name&gt;if&lt;/name&gt;  &lt;tag-class&gt;ttt.ConditionTest&lt;/tag-class&gt;  &lt;attribute&gt;    &lt;name&gt;items&lt;/name&gt;   &lt;/attribute&gt;   &lt;attribute&gt;     &lt;name&gt;var&lt;/name&gt;   &lt;/attribute&gt;   &lt;attribute&gt;     &lt;name&gt;varStatus&lt;/name&gt;    &lt;/attribute&gt;&lt;/tag&gt;&lt;/taglib&gt;</ccid_code></pre></td></tr></table></ccid_nobr></CENTER><p ><p >标签类:<p ><p >几个地方需要说明<p ><p >items属性是jsp页面传来的需要迭代的collection<p ><p >hasNext方法返回collection是否迭代结束<p ><p >next 进行迭代<p ><p >divpare 可以看成是初始化<p ><p >setVarStatus方法可以监视循环状态,根c:forEach的类似<p ><p ><CENTER><ccid_nobr><table width="400" border="1" cellspacing="0" cellpadding="2"  bordercolorlight = "black" bordercolordark = "#FFFFFF" align="center"><tr><td bgcolor="e6e6e6" class="code" ><pre><ccid_code>package ttt;import javax.servlet.jsp.JspTagException;import javax.servlet.jsp.jstl.core.LoopTagSupport;public class LoopTagTest extends LoopTagSupport ...{    private String items;    private int i=0;    public String getItems() ...{        return items;    }    public void setItems(String items) ...{        this.items = items;    }    protected boolean hasNext() throws JspTagException ...{        if(i==0)        ...{            return true;        }else...{            return false;        }    }    protected Object next() throws JspTagException ...{        i=1;        return this.getItems();    }    protected void divpare() throws JspTagException ...{        // TODO Auto-generated method stub            }    public void setVarStatus(String arg0) ...{        super.setVarStatus(arg0);    }}</ccid_code></pre></td></tr></table></ccid_nobr></CENTER><p ><p >JSP页面<p ><p ><CENTER><ccid_nobr><table width="400" border="1" cellspacing="0" cellpadding="2"  bordercolorlight = "black" bordercolordark = "#FFFFFF" align="center"><tr><td bgcolor="e6e6e6" class="code" ><pre><ccid_code>&lt;%...@ taglib divfix=&quot;cc&quot; uri=&quot;http://jstlbook.com/tld/weekday.tld&quot; %&gt;&lt;%...@ taglib divfix=&quot;c&quot; uri=&quot;http://java.sun.com/jsp/jstl/core&quot; %&gt;&lt;html&gt;&lt;head&gt;&lt;title&gt;Currency Formatting&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&lt;cc:if items=&quot;a:b:c:d&quot; var=&quot;line&quot; varStatus=&quot;s&quot;&gt;  &lt;cut value=&quot;${s.first}&quot;/&gt;&lt;br&gt;  &lt;c:forTokens items=&quot;${line}&quot; delims=&quot;:&quot; var=&quot;field&quot;&gt;      &lt;cut value=&quot;${field}&quot;/&gt;&lt;br&gt;  &lt;/c:forTokens&gt;&lt;/cc:if&gt;&lt;/body&gt;&lt;/html&gt;</ccid_code></pre></td></tr></table></ccid_nobr></CENTER><p ><p >结果很容易,因为只有一个String,所以外层循环只循环一次,内层根据delims循环四次<p ><p >true <p >a <p >b <p >c <p >d<p >(责任编辑:董建伟)                                 <p align="center"></p></p>
您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-4-6 07:15 , Processed in 0.060549 second(s), 24 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表