`

迭代标签

阅读更多

IterateTag.java

package tag;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;

/**
 * @作者 :goby
 * @创建时间:2009-6-14 下午04:47:43
 * @更新时间:$Date$
 */
public class IterateTag extends TagSupport {
	
	String name;
	String[] items;
	int i = 1;
	
	public void setName(String name) {
		this.name = name;
	}

	public void setItems(String[] items){
		this.items = items;
	}
	/* (non-Javadoc)
	 * @see javax.servlet.jsp.tagext.TagSupport#doStartTag()
	 */
	@Override
	public int doStartTag() throws JspException {
		// TODO Auto-generated method stub
		
		if(items!=null && items.length>0){
			pageContext.setAttribute(name, items[0]);
			//把标签体的执行结果插入到输出流中
			return EVAL_BODY_INCLUDE;
		}
		return super.doStartTag();
	}

//	不再重复执行标签内容
	@Override
	public int doAfterBody() throws JspException {
		  if(i<items.length){
			  pageContext.setAttribute(name, items[i]);
			  i++;
			  return EVAL_BODY_AGAIN;//重复执行标签内容
		  }else{
			  return SKIP_BODY; //不再重复执行标签内容
		  }
	}
	
    
	
}	

 

tag.tld

<?xml version="1.0" encoding="UTF-8"?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd"  
    version="2.0">

	<tlib-version>1.0</tlib-version>
	<short-name>it315</short-name>
	<uri>/taglib</uri>	
	<tag>
		<name>iterate</name>
		<tag-class>tag.IterateTag</tag-class>
		<attribute>
			<name>name</name>
			<requried>true</requried>
		</attribute>
		<attribute>
			<name>items</name>
			<requried>true</requried>
			<rtexprvalue>true</rtexprvalue>
		</attribute>
	</tag>
</taglib>

 

index.jsp

<%@ page contentType="text/html; charset=gb2312" %>
<%@ taglib uri="/taglib" prefix="it315" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <title>Hello</title>
    </head>
    <body>
            <br>
      iterate:
      <br>
	<% String[] books = {"dsdeeeee","123","ss","dd"}; %>
	<it315:iterate name="bookname" items="<%=books %>">
	<%=pageContext.findAttribute("bookname") %>
		${bookname}<br>
	</it315:iterate>
    </body>
    
</html>

 

 

 

  • 大小: 65.8 KB
分享到:
评论

相关推荐

    jsp自定义迭代标签

    ### JSP自定义迭代标签详解 #### 一、引言 在JSP(JavaServer Pages)开发中,自定义标签可以极大地提高代码的复用性和可维护性。特别是在处理循环迭代逻辑时,自定义迭代标签能够使页面逻辑更加清晰、简洁。本文...

    JAVAWEBjsp通用标签与迭代标签

    为了提高代码的可读性和可维护性,JSP引入了标签库,其中包括了通用标签和迭代标签。这些标签使得开发者能够以更加简洁的方式处理常见的编程任务,如数据输出、变量设置和循环。以下是关于`&lt;c:forEach&gt;`、`&lt;c:out&gt;`...

    JSP中table的td标签迭代循环

    3. **迭代标签()**:这是JSP标准标签库(JSTL)中的一种标签,用于遍历集合、数组等数据结构。它提供了一种简单有效的方法来处理列表数据。 #### 二、示例代码解析 给出的代码示例展示了如何在JSP中使用`...

    使用布隆过滤器的基于云的迭代标签搜索协议

    在深入讨论“使用布隆过滤器的基于云的迭代标签搜索协议”之前,需要明确几个关键概念和技术,这些内容构成了该论文研究的核心。 首先,RFID(射频识别)是一种无线通信技术,它利用无线电波信号来识别特定目标,...

    简单JSP标签实现迭代

    总结来说,"简单JSP标签实现迭代"这个实例涉及了JSP自定义标签的创建和使用,包括TLD文件的配置、标签处理类的编写以及标签文件的设计。通过这种方式,我们可以更好地组织和管理代码,提高开发效率,并使得JSP页面...

    Java标签库—Taglib.pdf

    - **TagSupport类**:是`IterationTag`的一个实现类,通过继承`TagSupport`,开发者可以方便地开发出迭代标签。 ### 标签库应用范围 Java标签库主要应用于Java EE环境下的Web开发,特别是JSP页面的开发。通过标签...

    jstl标签详解.doc

    1. **Core库**:提供基础操作,如变量管理、迭代、条件判断以及URL操作。 2. **Format库**:用于数据格式化,尤其是数字和日期,同时也支持国际化。 3. **XML库**:处理XML数据。 4. **SQL库**:处理与关系数据库的...

    webwork标签

    WebWork标签库分为多个类别,包括通用标签、组件化标签、流程控制标签、迭代标签、UI标签、VUI标签以及国际化支持标签。 1. **通用标签**: - `&lt;ww:property&gt;`:用于获取结果的属性值,如果未指定值,将从值栈顶部...

    Struts2常用标签

    2. **迭代标签(iterator)** 这个标签用于遍历集合或枚举值。例如: ```jsp &lt;!-- 迭代体 --&gt; ``` `value`属性指定要遍历的集合,`status`属性可以获取迭代状态信息。 3. **选择标签(select、option、...

    Struts2标签库详解.doc

    5. **迭代标签**:`&lt;s:iterator&gt;`是用于遍历集合的标签,它可以遍历任何实现了Iterable接口的对象,如数组、列表或Map。配合`&lt;s:append&gt;`,可以在不同的数据源之间进行灵活的数据整合。 6. **生成标签**:`...

    jsp标签库(详细)

    - **迭代标签**:用于循环遍历集合或数组的数据,例如`&lt;c:forEach&gt;`标签。 - **模板标签库**:提供了一系列用于布局控制和页面渲染的标签,如`&lt;ui:repeat&gt;`用于模板化重复区域的渲染。 #### 总结 JSP标签库,特别...

    Struts2页面开发中常用标签

    迭代标签`&lt;s:iterator&gt;` 用于循环遍历集合,如List或Map: ```html ``` 此标签能有效处理大量数据展示,`value`属性指定集合名称,`status`属性可提供额外的迭代信息。 ### 5. URL生成标签`&lt;s:url&gt;` 用于...

    自定义标签学习笔记

    3. **无体迭代标签执行方法**: - `doStartTag`: 处理标签开始部分。 - `doEndTag`: 处理标签结束部分。 - `release`: 清理资源。 4. **体迭代标签执行方法**: - `doStartTag`: 处理标签开始部分。 - `...

    jstl标签库3

    ### JSTL 标签库中的迭代标签详解 #### 一、引言 JSTL (JavaServer Pages Standard Tag Library) 是一种专为简化 JavaServer Pages (JSP) 页面开发而设计的标准标签库。它提供了一系列功能强大的标签,用于执行...

    Struts2标签库.pdf

    1. **Struts2标签库的组成部分**:Struts2标签库包括了多种标签,如UI标签(用于创建用户界面)、表单标签(用于创建表单元素)、条件标签(if、else、elseif等)、迭代标签(iterator等)、国际化标签(i18n)、...

    struts2标签的使用代码

    在Struts2中,`&lt;s:iterator&gt;`标签是最常用的迭代标签,用于遍历集合或数组。例如,你可以使用它来显示数据库查询结果: ```jsp &lt;p&gt;Id: , Name: &lt;s:property value="name" /&gt;&lt;/p&gt; ``` 在这个例子中,`list`是你...

    struts2标签解析

    8. `s:iterator`: 迭代标签,用于遍历集合、数组或者Map。通过`value`属性指定迭代源,`status`或`var`属性可以创建一个变量来存储当前迭代状态或元素。 9. `s:if`和`s:else`: 条件判断标签,可以基于OGNL表达式的...

    jstl核心标签库案例与jar架包.zip

    其中,Core库是最基础也是最常用的,包含了控制流标签、条件标签、迭代标签等。 **二、JSTL Core库** 1. **控制流标签**: - `&lt;c:if&gt;`:用于执行条件判断。 - `, , &lt;c:otherwise&gt;`:用于实现多分支选择。 - `...

Global site tag (gtag.js) - Google Analytics