`
一日一博
  • 浏览: 230443 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Struts2常用的集合控制标签

阅读更多
<s:iterator/>迭代器标签

迭代器标签被用来迭代一个值,这个值可以是java.util.Collection或java.util.Iterator中的任何一种
<s:iterator value="集合对象" status="迭代状态实例">
     <s:property value="#status.count"/>
</s:iterator>

<h3>带有IteratorStatus的迭代</h3>
   <table>
    <s:iterator value="comboMeals" status="comboMealsStatus">
     <tr>
      <s:if test="#comboMealsStatus.even == true">
        <td style="background: #CCCCCC"><s:property/></td>
      </s:if>
      <s:elseif test="#comboMealsStatus.first == true">
        <td><s:property/> (This is first value) </td>
      </s:elseif>
      <s:else>
        <td><s:property/></td>
      </s:else>
     </tr>
    </s:iterator>
  </table>

status实例对象有几个非常有用的方法
int getCount(): 返回目前迭代输出的元素个数
int getIndex(): 返回当前迭代元素的索引号,从0开始的序号

boolean isOdd(): 返回当前迭代元素索引号是否为奇数
boolean isEven(): 返回当前迭代元素索引号是否为偶数

boolean isFirst(): 返回当前迭代元素索引号是否为第一个元素
boolean isLast(): 返回当前迭代元素索引号是否为最后一个元素


<s:append>标签

<s:append>标签被用来将多个迭代器(由List或Map创建)组合到一个单独的迭代器中
<s:append var="customListIterator">
 <s:param value="%{list1}" />
 <s:param value="%{list2}" />
 <s:param value="%{list3}" />
</s:append>
<s:iterator value="%{#customListIterator}" status="sta">
 <s:property value="#sta.count" />
</s:iterator>


<s:generator>标签

<s:append>标签被用来将指定的字符串按指定的分隔符拆分成字符串集合,并存放在ValueStack栈顶,供迭代器标签迭代输出。如果指定id属性则将拆分后的字符串集合存放在request中。
  <s:generator val="%{'java|.net|c|python|shell'}" separator="|">
    <s:iterator status="st">
      <s:property value="st.count" />,<s:property />
    </s:iterator>
  </s:generator>

  <s:generator val="%{'书法,足球,音乐'}" separator="," id="mylove" count="2">
    <s:iterator value="#request.mylove" status="st" id="row">
      <s:property value="st.count" />,<s:property value="row"/>
    </s:iterator>
  </s:generator> 


<s:merge>标签

<s:merge>标签的用法与<s:append>一样,也是用来合并集合,不过<s:append>是按合并的顺序依次重新排序的,而<s:merge>对于List迭代器顺序是这样的:

假设有两个迭代器,每个都有两条记录。在使用 <s:merge>标签组合到一个单独的迭代器以后,记录的顺序看上去会如下所似:

  1  第一个迭代器的第一个记录;
  2  第二个迭代器的第一个记录;
  3  第一个迭代器的第二个记录;
  4  第二个迭代器的第二个记录。

这只适用于List迭代器,对于Map迭代器,顺序则是随机的
<s:merge var="customListIterator">
  <s:param value="%{list1}" />
  <s:param value="%{list2}" />
  <s:param value="%{list3}" />
</s:merge>
<s:iterator value="%{#customListIterator}" status="st">
  <s:property value="st.count"/>
</s:iterator>


<s:subset>标签

<s:subset>标签被用来输出一个迭代器元素的子集合或一部分。使用“start”和“count”属性以及decider()方法输出迭代器(list)的子集合。
source:指定源集合,如果此属性不存在,默认从ValueStack栈顶取
count:指定截取元素个数,默认为所有元素
start:指定截取的起始位置,默认值为0
id:如果指定了该属性,则将截取到的子集合放到pageContext对象中
decider:如果指定了该属性,则使用指定筛选器对源集合每个元素进行筛选
<s:subset source="numbers" start="1" count="5">
  <s:iterator>
   <s:property />
  </s:iterator>
</s:subset>

<s:subset source="numbers" decider="numberDecider">
  <s:iterator>
   <s:property />
  </s:iterator>
</s:subset>


<s:sort>排序标签

<s:sort>标签被用来使用java.util.Comparator对List进行排序。
source:指定源集合,如果此属性不存在,默认从ValueStack栈顶取
comparator:必填属性,用于指定比较器,实现排序规则
id:如果指定了该属性,则将截取到的子集合放到pageContext对象中
import java.util.Comparator;

/** 自定义排序器 */
public class MyComparator implements Comparator {

   //返回值大于表示第一个元素大于第二个,等于零表示相等,小于零表示小于第二个
   public int compare(Object o1, Object o2){
        //实现单词第一个字典顺序
        String e1 = (String)e1;
        String e2 = (String)e2;
        return e1.charAt(0)-e2.charAt(0);
   }

}


<s:bean name="com.util.MyComparator" id="myeComparator" />

<s:sort comparator="myComparator" source="{'V','Z','S','A'}">
   <s:iterator status="st">
      <s:property value="st.count" />, <s:property />
   </s:iterator>
</s:sort>
分享到:
评论

相关推荐

    Struts2常用标签

    本篇文章主要关注Struts2中的常用标签,这些标签大大简化了Web开发中的一些常见任务。 首先,我们要明白Struts2标签库与Struts1.x的不同之处。在Struts1.x中,标签库按照功能划分为HTML、Tiles、Logic和Bean等几个...

    struts2常用标签详解(实用版)

    ### Struts2常用标签详解(实用版) #### 引言 在Java Web开发领域中,Struts2框架因其丰富的功能及灵活的配置而备受开发者们的青睐。为了更好地掌握Struts2框架并提升开发效率,本文将详细介绍Struts2中常用的...

    struts2常用标签详解

    本文将深入解析Struts2中的常用标签,这些标签在实际开发中非常实用,对于初学者理解并掌握Struts2的运行机制至关重要。 首先,我们需要了解Struts2标签库的主要组成部分,它们分为Action、Display、Logic、Field和...

    struts2遍历集合

    根据提供的文件信息,本文将详细解析Struts2框架中遍历集合的方法,并附带介绍一些常用的Struts2标签使用技巧。 ### Struts2框架简介 Struts2是Apache基金会下的一个开源项目,它是一个用于开发Java Web应用程序的...

    struts2.0常用标签文档

    10. **标签的CSS和JavaScript控制**:Struts2的标签支持CSS类的设置,如`cssClass`属性,以及JavaScript事件处理,如`onchange`、`onclick`等。 以上只是Struts2.0常用标签的一小部分,实际使用中还有更多功能强大...

    Struts2页面开发中常用的标签介绍

    ### Struts2页面开发中常用的标签介绍 #### 一、Struts2常用标签概述 Struts2框架在Java Web开发中被广泛应用于构建MVC架构的应用程序。它提供了丰富的标签库来简化页面开发过程,使得开发者能够更加高效地处理...

    Struts2常用标签及说明

    ### Struts2常用标签及其应用详解 #### 一、引言 Struts2是一个基于MVC模式的开源Java Web框架,它提供了丰富的标签库来帮助开发者更高效地进行Web应用程序的开发。这些标签不仅简化了页面逻辑的编写,还提高了代码...

    Struts2 常用标签使用(三十九)

    本篇文章将详细讲解Struts2中的常用标签,主要分为九个部分进行阐述。 一、展示数据标签 1. `&lt;s:property&gt;`:这个标签用于显示Action或ActionForm属性的值。例如,`&lt;s:property value="username" /&gt;`会显示与...

    Struts2 常用标签

    ### Struts2常用标签解析 #### 一、概述 Struts2是Apache组织下的一个开源框架,用于构建企业级Java Web应用。它基于MVC(Model-View-Controller)设计模式,提供了一套完整的解决方案来简化Web应用的开发流程。在...

    struts常用标签示例

    本示例将深入探讨Struts中常用的标签及其应用。 1. **`&lt;s:form&gt;`** 标签: 这是Struts2中最基本的表单标签,用于创建HTML表单。它可以自动绑定到Action类的属性,提供数据验证等功能。例如: ```jsp 用户名"/&gt;...

    struts三个常用标签

    在Struts2中,有三个常用的标签,它们极大地简化了开发者在视图层的工作,提高了代码的可读性和可维护性。 1. `s:textfield` 标签: 这个标签用于创建HTML输入字段,通常用于用户输入数据。它与Action类中的属性相...

    Struts标签集合简介

    此标签类似于Struts1中的JavaBean引用,但在Struts2中并不常用,因为Struts2更倾向于使用Action来处理业务逻辑。 C. `&lt;s:checkbox&gt;`, `&lt;s:checkboxlist&gt;`, `&lt;s:combobox&gt;`, `&lt;s:component&gt;`: 这些标签用于创建复选...

    struts2常用标签

    以下是对Struts2中一些常用标签的详细说明: 1. `&lt;s:a&gt;`:这是一个超链接标签,用于创建HTML的`&lt;a&gt;`标签。通过指定`href`属性,可以链接到指定的URL。与HTML的`&lt;a&gt;`标签不同,它还可以结合Struts2的Action映射,...

    Struts标签库 Struts 标签库

    Struts2标签库是Java开发Web应用程序时常用的一个强大工具,尤其在构建MVC(Model-View-Controller)架构的应用程序中发挥着重要作用。Struts2框架提供了丰富的自定义标签库,极大地简化了视图层的开发,使得开发者...

    struts2.0 教程(标签,XML配置,入门例子,帮助手册)

    Struts2提供了丰富的自定义标签,如`&lt;s:property&gt;`用于显示对象属性,`&lt;s:form&gt;`用于创建表单,`&lt;s:submit&gt;`用于提交表单,以及`&lt;s:iterator&gt;`用于遍历集合。这些标签极大地简化了JSP页面的编写,提高了代码的可读性...

    struts2标签库

    下面将详细介绍Struts2标签库中的部分常用标签,并将其与Struts1进行对比,以便更好地理解它们的功能。 #### 1. `&lt;s:a&gt;` 和 `&lt;s:action&gt;` - **`&lt;s:a&gt;`**:该标签用于创建一个超链接,类似于HTML中的`&lt;a&gt;`标签。与...

    struts2常用标签整理

    本篇文章将详细梳理Struts2中的一些常用标签,旨在帮助开发者更好地理解和使用这些功能。 1. **s:textfield**: 这个标签用于创建HTML输入字段,通常对应于表单中的一个属性。它自动处理了数据的校验和转换,如`...

Global site tag (gtag.js) - Google Analytics