`
一日一博
  • 浏览: 226821 次
  • 性别: 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>
分享到:
评论

相关推荐

    Struts标签集合简介

    一些常用的struts标签 在常用的开发当中基本够用了~~

    struts2.0常用标签文档

    大家看看吧,都是项目常用的标签,什么遍历集合 好多标签了

    struts2遍历集合

    详细讲解了遍历集合的方法,附加一些常用标签的使用方法。

    struts2常用标签

    主要用于将多个集合拼成一个新的集合。它只有一个id参数。 需要和param标签同时使用。 一搬情况下append标签使用过后,iterator标签会同时使用。

    Struts2 in action中文版

    6.7.2 Struts 2中常用的表达式语言特性 131 6.7.3 表达式语言的高级特性 135 6.8 小结 137 第7章 UI组件标签 139 7.1 为什么需要UI组件标签 139 7.2 标签、模板和主题 144 7.2.1 标签 146 7.2.2 模板 146 7.2.3 ...

    Struts2入门教程(全新完整版)

    6.其它常用标签的使用(代码参名为“补充”的文件夹下的tag.jsp) 45 七、国际化 47 1.action级别下的国际化 47 2.配置package的资源文件 48 3.app级别的资源文件 48 4.使用资源文件的原理 49 5.选择使用资源文件 49...

    实用struts标签库

    一个集合了常用的struts标签的web工程,只要放在myeclipse中发布一下就可以使用浏览器查看了,十分方便

    低清版 大型门户网站是这样炼成的.pdf

    3.2 struts 2控制标签详解 105 3.2.1 if/elseif/else标签详解 105 3.2.2 iterator标签详解 106 3.2.3 append标签详解 108 3.2.4 generator标签详解 110 3.2.5 merge标签详解 112 3.2.6 subset标签详解 113 ...

    java开发常用的中文API集合包

    包含很多常用的中文API,包含如下: css2中文沈小雨版.chm css3.0参考手册.chm Freemaker_入门+深入+开发指南+学习笔记.doc FreeMarker标签中文文档.pdf FreeMarker教程.pdf ibatis开发指南(中文版)....Struts2 API.chm

    68个常用开发手册

    struts2标签.chm tomcat5.5中文帮助文档.chm W3CSchool.chm w3school完整版.CHM WebGL自修教程.chm XML+Schema官方教程(9loong中文版)修正版2009.04.chm XmlSchema标准参考手册.chm XPathTutorial.chm 样式表中文...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    全书分4篇,共24章,其中,第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e...

    java面试要点集合

    2、struts标签库有哪些 3、struts主要类有哪几个 4、数据库事务有什么用、什么是ACID 航天信息有限公司 1。List与Set的相同与不同之处,分别举出两个这两个接口的常用方法。(10分) 2。谈谈你对接口的理解与看法...

    java开发常用jar包

    struts2-spring-plugin-2.0.14.jar struts2整合spring所需要的包 xwork-2.0.7.jar xwork核心包 antlr-2.7.6.jar 一个语言转换工具, Hibernate利用它实现 HQL 到 SQL 的转换模板相关操作需要包 javassist-3.9.0...

    李兴华Java Web开发实战经典(高清版) Part2

    第16章 Struts常用标签库 16.1、Struts标签库简介 16.2、Bean标签 16.2.1、标签 16.2.2、标签 16.2.3、资源访问标签 16.2.4、标签 16.2.5、标签 16.2.6、标签 16.2.7、国际化与标签 16.3、Logic...

    java web 视频、电子书、源码(李兴华老师出版)

    0416_Struts常用标签库 0417_Struts高级开发 0500_第五部分:附录 0518_附录A:实用工具 0519_附录B:MyEclipse开发工具 电子书目录: MLDN 李兴华 Java Web 开发实战经典.pdf (高清版) 第1章 JAVA WEB开发...

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 上

    第16章 Struts常用标签库 16.1、Struts标签库简介 16.2、Bean标签 16.2.1、标签 16.2.2、标签 16.2.3、资源访问标签 16.2.4、标签 16.2.5、标签 16.2.6、标签 16.2.7、国际化与标签 16.3、Logic标签 ...

    李兴华 java_web开发实战经典 源码 完整版收集共享

    第16章 Struts常用标签库 16.1、Struts标签库简介 16.2、Bean标签 16.2.1、标签 16.2.2、标签 16.2.3、资源访问标签 16.2.4、标签 16.2.5、标签 16.2.6、标签 16.2.7、国际化与标签 16.3、Logic标签 ...

    MLDN+李兴华+Java+Web开发实战经典.part3.rar )

    第16章 Struts常用标签库 16.1、Struts标签库简介 16.2、Bean标签 16.2.1、标签 16.2.2、标签 16.2.3、资源访问标签 16.2.4、标签 16.2.5、标签 16.2.6、标签 16.2.7、国际化与标签 16.3、Logic...

Global site tag (gtag.js) - Google Analytics