详解Struts2标签遍历

struts2的s:iterator 可以遍历 数据栈里面的任何数组,集合等等 以下几个简单的demo:

s:iterator 标签有3个属性:

value:被迭代的集合

id   :指定集合里面的元素的id,可以和var属性替换

status 迭代元素的索引

1:jsp页面定义元素写法数组或list

<s:iterator value="{'1','2','3','4','5'}" id='n'>
  <s:property value='n'/>A
</s:iterator>

打印结果为: 1A2A3A4A5A

2:索引的用法

如果指定了status,每次的迭代数据都有IteratorStatus的实例,它有以下几个方法

int getCount()返回当前迭代了几个元素

int getIndex()返回当前元素索引

boolean isEven()当然的索引是否偶数

boolean isFirst()当前是否第一个元素

boolean isLast()

boolean isOdd()当前元素索引是否奇数

<s:iterator value="{'a','b','c'}" id='char' status='st'>

<s:if test="#st.Even">

现在的索引是奇数为:<s:property value='#st.index'/>

</s:if>

当前元素值:<s:property value='char'/>

</s:iterator>

3:遍历map

value可以直接定义为:

value="#{"1":"a","2":"b"}"

每个元素以都好隔开。元素之间的key和value 冒号隔开

value也可以是数据栈里面的java.util.Map对象

遍历写法如下:

<s:iterator value="map" id="id" status="st">
   key : <s:property value='key'/>
   value:<s:property vlaue='value'/>
</s:iterator>

当然key 和value 都可以使java 的 Object

4:遍历数据栈.简单的List类

<s:iterator value="data.datas" var="student" status="st">
 <tr align="center">
 <td>
  <s:property value="#student.id" />
 </td>
 <td>
  <s:property value="#student.name" />
 </td>
 <td>
  <s:date name="#student.birth" fomart="yyyy/MM/dd hh:mm:ss"/>
 </td>
 </tr>
</s:iterator>

5:遍历2个list

第一个例子

List<AttrName> attrN {color,size,style}
List<AttrValue> attrV {red,20,gay}

这2个list的元素是一一对应的,一个attrN对应一个attrV

<s:iterator value="%{attrN }" id="id"  status="status">
index  is : <s:property value='status.index'/>
attrName is : <s:property value='id'/> or <s:property value='%{id}'/>
attrName is : <s:property value='%{attrV[#status.index]}'/>

第二个例子

<s:iterator value="data.datas" var="student" status="st">
 <tr align="center">
 <td>
  <s:property value="#student.id" />
 </td>
 <td>
  <s:property value="#student.name" />
 </td>
 <td>
  <s:date value="#student.birth" fomart="yyyy/MM/dd hh:mm:ss"/>
 </td>
 <td>
  <s:date value="classlist[#st.index].classname"/>
 </td>
 </tr>
</s:iterator>
</s:iterator>

总结

以上就是本文关于详解Struts2标签遍历的全部内容,希望对大家有所帮助,感兴趣的朋友可以参阅:Struts2截取字符串代码介绍  Struts和servlet不能共存问题解决方法  Struts2修改上传文件大小限制方法解析 等,欢迎大家浏览本站其他相关专题。

(0)

相关推荐

  • Struts2 OGNL表达式实例详解

    Object Graph Navigation Language:对象图导航语言,就是用点来访问成员变量 <s:property value="cat.name"/> 例1: struts.xml: <package name="ognl" namespace="/ognl" extends="struts-default"> <action name="og1" class=

  • Struts2修改上传文件大小限制方法解析

    首先struts上传最大大小由两个地方决定.  · struts.multipart.maxSize决定整个post的form最大是多大,所以这个限制是最初的.默认大小是接近2M,在struts的default.properties中定义.  · fileuploadInterceptor中可以定义maximumSize最大文件大小. 最初定义在struts.xml中定义了没有生效,后来发现在工程中的struts.properties中已经设置过,所以后来被覆盖了,更改struts.proper

  • 详解Struts2动态方法调用

    动态方法就是一个Action对应多个请求,减少Action的数量 1.指定method属性 <action name="addAction" method="add" class="com.venn.action.HelloWorldAction"> <result>/jsp/add.jsp</result> </action> 2.感叹号(!)方式(不推荐使用) <action name=&

  • Struts2.5 利用Ajax将json数据传值到JSP的实例

    AJAX +JSON=>JSP AJAX  AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. 传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页页面. JSON JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式.它基于 ECMAScript (w3c制定的js规

  • struts2开发流程及详细配置

    一:Struts开发步骤: 1. web项目,引入struts - jar包 2. web.xml中,引入struts的核心功能 配置过滤器 3. 开发action 4. 配置action src/struts.xml 二:详细配置    1.引入8个jar文件 commons-fileupload-1.2.2.jar   [文件上传相关包] commons-io-2.0.1.jar struts2-core-2.3.4.1.jar           [struts2核心功能包] xwork-

  • 详解Struts2标签遍历

    struts2的s:iterator 可以遍历 数据栈里面的任何数组,集合等等 以下几个简单的demo: s:iterator 标签有3个属性: value:被迭代的集合 id   :指定集合里面的元素的id,可以和var属性替换 status 迭代元素的索引 1:jsp页面定义元素写法数组或list <s:iterator value="{'1','2','3','4','5'}" id='n'> <s:property value='n'/>A </s

  • 详解struts2的token机制和cookie来防止表单重复提交

    详解struts2的token机制和cookie来防止表单重复提交 今天在做一个投票系统时要实现防止表单重复提交! 当时就想到了用struts2提供的token机制 struts2的token机制防止表单重复提交: 首先需要在提交的jsp页面(要使用token机制,必须使用struts2提供的标签库)加上 <s:token></s:token> 这段代码,然后在struts.xml里面需要进行如下配置: <action name="token" class

  • 详解Struts2中对未登录jsp页面实现拦截功能

    Struts2中拦截器大家都很经常使用,但是拦截器只能拦截action不能拦截jsp页面.这个时候就有点尴尬了,按道理来说没登录的用户只能看login界面不能够通过输入URL进行界面跳转,这显然是不合理的.这里介绍Struts2中Filter实现jsp页面拦截的功能.(有兴趣的人可以去研究Filter过滤器的其它用法,因为利用过滤器也可以实现action拦截的功能) 下面直接上代码,边看边分析实现步骤和原理. 1.web.xml中的配置信息: <filter> <filter-name&

  • 详解Struts2中Action访问Servlet API的几种方法

    详解Struts2中Action访问Servlet API的几种方法 在通常的web开发中Request和Response对象比较常见,但在Struts2框架中由于Action能与JSP页面进行数据交互,所以通常都不会用到这两个对象.如果想在Struts2程序中用到这两个对象,也有解决方法 Struts2的Action并未直接与任何Servlet API耦合,这是Struts2的一个改良之处,因为Action类不再与Servlet API耦合,能更轻松的测试该Action.但如何访问? Web应

  • 详解template标签用法(含vue中的用法总结)

    一.html5中的template标签 html中的template标签中的内容在页面中不会显示.但是在后台查看页面DOM结构存在template标签.这是因为template标签天生不可见,它设置了display:none;属性. <!--当前页面只显示"我是自定义表现abc"这个内容,不显示"我是template",这是因为template标签天生不可见--> <template><div>我是template</div

  • 详解JS对象遍历的顺序问题

    可能有些同学听过在 JavaScript 中遍历对象顺序不固定的这一说法.事实上,这个说法不是特别准确. 对待遍历顺序,对象有一套自己既定的规则,在此规则下呢,对象的遍历顺序会受插入元素顺序的影响,但是不完全受插入元素先后顺序的影响.如果您有「必须按插入元素顺序遍历」的场景,可以考虑使用 Map. 遍历对象的方法有很多种,我们经常会使用的有 for...in ,除此之外,还有: Object.keys Object.entries Obejct.getOwnerProPertyNames Ref

  • 详解Struts2中配置默认Action的方法

    一.jsp默认设置 1.当访问的Action不存在时,页面会显示错误信息,可以通过配置默认Action处理用户异常的操作: 2.配置方法: 在struts.xml文件中的下添加如下内容: <default-action-ref name="index"></default-action-ref> 其中index为默认Action的name属性值: 3.配置默认Action后,相应的namespace下不存在要访问的Action时,自动跳转到默认Action处理.

  • 详解a标签添加onclick事件的几种方式

    我们常用的在a标签中有点击事件: 1. a href="javascript:js_method();" rel="external nofollow" 这种方法在传递this等参数的时候很容易出问题,而且javascript:协议作为a的href属性的时候不仅会导致不 必要的触发window.onbeforeunload事件,在IE里面更会使gif动画图片停止播放.W3C标准不推荐在href里面执行 javascript语句 2. a href="jav

  • 详解Struts2拦截器机制

    Struts2的核心在于它复杂的拦截器,几乎70%的工作都是由拦截器完成的.比如我们之前用于将上传的文件对应于action实例中的三个属性的fileUpload拦截器,还有用于将表单页面的http请求参数设置成action中对应的属性的param拦截器等.总之,在整个Struts框架中拦截器的作用是相当大的,本篇将从以下几点详细介绍下有关Struts拦截器的内容: 拦截器在Struts中的作用 自定义拦截器实现类 配置拦截器(包含配置默认拦截器) 引用拦截器 配置拦截指定方法的拦截器 拦截器的拦

随机推荐