转自http://flashdream8.iteye.com/blog/354809
在Struts中我们对有些标签的使用还不是怎么了解。我是不怎么了解的,尤其是在数据的遍历方面,有时候真的不知道那是为什么会那样,它代表的是什么意思。有时真的把人搞得很郁闷。
特此。在这里总结哈,让那些和我一样郁闷的人来清醒哈。在Struts中的数据遍历。它有对集合,Map,还有就是在HashMap中的每个元素的Value是集合对象遍历。接下来我们一起看看它是怎么遍历的。
第一种:在Struts标签中对集合的遍历。它比较简单,看它的代码实现。如下:
<%
Vector vector = new Vector();
//这是给Vector中添加数据
vector.addElement("Dog");
vector.addElement("Cat");
vector.addElement("Bird");
//这是把Vector中的数据放到Request范围中
request.setAttribute("Animals",vector);
%>
//它在遍历Vector中的每个元素时,每检索到一个元素,就
//把它命名为"element",并且把存放在 Pag范围中。
<logic:iterate id="element" name="Animals">
//这是它嵌套的标签,用于输出每个元素的内容。
<bean:write name="element"/>
</logic:iterate>
//这里特别要解释三个属性,indexId属性定义了一个代表
//当前遍历的元素的序列号,它存放在 pag 范围中。
//offset属性指定开始遍历元素的起始位置,默认值为
//“0”,Length属性就是要遍历集合中的多少个元素。
<logic:iterate id="element" name="Animals"
indexId="index" offset="1" length="2">
<bean:write name="index"/>
<bean:write name="element"/>
</logic:iterate>
第二种:在Struts标签中对Map的遍历。实现代码如下:
<%
HashMap map = new HashMap();
//给HashMap中以键值的方式添加数据
map.put("Jan","January");
map.put("Feb","February");
map.put("Mar","March");
//这里也是把HashMap中的数据放到Request范围中
request.setAttribute("months",map);
%>
<logic:iterate id="element" name="months"
indexId="index">
//这里输出的是它的系列号,键,值
<bean:write name="index"/>
<bean:write name="element" property="key"/>
<bean:write name="element"property="value"/>
</logic:iterate>
第三种:在Struts标签中对HashMap中的Value值是集合对象的遍历。这里用到了嵌套的<logic:iterate>标签。来看它的代码实现。如下:
<%
HashMap hm = new HashMap();
//这里定义了几个集合对象
String vegetables[] ={"pepper","cucumber"};
String fruits[] = {"apple","orange","banana"};
String flowers[] = {"rose","chrysanthemum"};
String trees[] = {"willow"};
//把上面定义的集合对象放到HashMap中。
hm.put("Vegetables",vegetables);
hm.put("Fruits",fruits);
hm.put("Flowers",flowers);
hm.put("Trees",trees);
//这里也和上面的一样,把它放在Request范围中
request.setAttribute("catalog",hm);
%>
<logic:iterate id="element" indexId="index"
name="catalog">
//这里输出的是系列号,键
<bean:write name="index"/>
<bean:write name="element" property="key"/><br>
//这里的Length,offset 属性请看上面的解释
<logic:iterate id="elementValue" name="element"
property="value" length="3" offset="1">
//这里输出值
<bean:write name="elementValue"/><br>
</logic:iterate>
</logic:iterate>
第四:说到着,我就顺便把在遍历的时候怎么设置变量说一哈。
1>设置name属性,name属性指定需要遍历的集合和Map。如下:
<logic:iterate id="element"name="要遍历的集合和
Map">
<bean:write name="element"/>
</logic:iterate>
2>设置name属性和property属性,name属性可以指定一个JavaBean,property属性指定JavaBean的一个属性,这个属性是需要遍历的集合和Map。如下:
<logic:iterate id="element"name="JavaBean"
property="JavaBean的属性">
//这里输出指定的属性
<bean:write name="element"/>
</logic:iterate>
3>设置collection属性,collection属性可以指定一个运行时表达式。表达式的运算结果为需要遍历的集合和Map。如下:
//这里需要注意的是在得数据的时候,要看它在那个存
//储范围内,下面就是在request范围中取数据。
<logic:iterate id="element" collection="<%request.getHeaderNames()%>">
//这里输出得到的值
<bean:write name="element"/>
</logic:iterate>
分享到:
相关推荐
在使用Struts标签库时,还需要注意以下几点: 1. 引入标签库:在JSP页面中通过`<%@ taglib %>`指令引入相应的标签库。 2. 标签名和属性:理解每个标签的名称及其属性,合理设置属性值,以实现期望的功能。 3. 国际化...
### Struts标签库详解 #### 引言 Struts,作为Apache Jakarta的知名开源项目,致力于为基于Java的Web应用程序构建提供一个强大的框架。其核心优势在于提供了丰富的标签库,这些标签按照不同的功能和使用场景被划分...
这个“Struts2标签库详解(非常不错)”的资源应该包含了对Struts2所有标签的详细介绍,以及相关的API文档。 Struts2标签库的核心在于提供了一种声明式编程的方式,使得开发者可以更专注于业务逻辑,而不是繁琐的JSP...
Nested库增强了其他Struts标签的嵌套功能,使得在复杂结构的数据模型中使用标签更加方便。例如,可以嵌套`<nested:property>`来处理多层属性的访问。 在使用Struts1标签时,有几个共同的特性需要注意,比如`...
下面将详细介绍几种常见的Struts2.0标签,并结合示例进行解释: ### 示例分析 给出的示例代码主要展示了如何使用`<html:select>`标签来创建一个下拉列表,并利用`<c:forEach>`标签遍历数据集以填充下拉列表选项。...
实现Struts2.0中的数据分页主要涉及以下几个步骤: 1. **数据库设计与连接**: - 首先,你需要创建一个数据库,比如这里提到的MySQL,并在其中存储数据。例如,创建一个名为"user1"的表,包含需要分页展示的数据。...
Struts标签库是Java Web开发中的重要组成部分,主要用于构建MVC(模型-视图-控制器)架构的应用程序。Struts框架提供了丰富的标签库,简化了JSP页面的编写,使得开发者能够更专注于业务逻辑,而不是繁琐的HTML和...
在给出的代码片段中,可以看到以下几个关键的Struts标签: 1. `<%@ taglib prefix="s" uri="/struts-tags"%>` 和 `<%@ taglib prefix="sx" uri="/struts-dojo-tags"%>`:这两行代码引入了Struts2的标签库,`s`前缀...
Struts框架是Java Web开发中的一个经典选择,它提供了一种模型-视图-控制器(MVC)架构来组织应用程序。在Struts中,eXtreme Components(简称EC)是一组强大的标签库,用于增强用户界面的交互性和美观性。这些标签...
前端页面通常使用JSP或FreeMarker等模板技术来渲染,通过Struts2的标签库,可以轻松地遍历分页对象中的数据并显示出来。同时,需要提供上一页、下一页等导航链接,这可以通过修改Action中的页码属性,然后重定向或...
在 Struts2 中,`<s:if>` 标签是一种常用的条件判断标签,用于在页面上根据不同的条件展示不同的内容。`<s:if>` 标签依赖于 Struts2 提供的强大表达式语言——OGNL(Object-Graph Navigation Language),该语言可以...
Struts2标签库中包含了许多控制标签和数据标签,它们能够帮助开发者更高效地进行页面开发。 - **控制标签**:这类标签用于实现循环、条件判断等功能,例如`<s:if>`、`<s:else>`、`<s:elseif>`、`<s:foreach>`等。 -...
总之,Struts2自定义标签提供了一种灵活的方式,使得开发者能够在JSP页面中方便地实现分页效果。通过自定义标签,我们可以将复杂的分页逻辑封装起来,使得前端展示更加简洁,同时提高了代码的可维护性和复用性。结合...
通过阅读API文档,如`struts2-tags-API.chm`,可以深入理解每个标签的用法、属性和事件,从而在实际项目中灵活运用。 此外,源码分析也是掌握Struts2标签集的一种有效方法。通过查看其源代码,我们可以了解标签背后...
此外,Struts2支持更强大的表达式语言,如OGNL(Object-Graph Navigation Language),这使得在标签中处理数据和逻辑变得更加灵活。 1. **非UI标签** - `if`, `elseif`, `else`: 这些标签用于在JSP页面中执行条件...
Struts2框架提供了一种便捷的方式,允许我们在JSP页面上遍历并显示存储在Map中的数据。这篇博客(尽管链接已不可用)可能探讨了如何使用Struts2的迭代器标签来处理嵌套Map的情况。 首先,让我们理解基本概念。`...
3. **视图组件**:视图负责展示数据,Struts使用JSP页面作为视图,通过Struts标签库可以方便地在JSP页面中展示和操作数据。 4. **配置文件**:`struts-config.xml`是Struts框架的核心配置文件,定义了ActionMapping...
Struts 2.0 是一款流行的Java Web框架,它的核心特性之一是强大的标签库(Tag Library),这使得开发者能够更方便地在JSP页面中构建动态用户界面。本篇文章主要介绍Struts 2.0中常用的标签,以及它们在实际工作中的...