`
wind_bell
  • 浏览: 291330 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

logic:Iterator标签

阅读更多
logic:Iterator标签(以下简称“该标签”)是Struts里非常常用的一个标签,其作用在于循环显示给定容器对象中的值。
  
  如此常用的标签,其源代码当然需要拿出来研究一下,以下列举几条研究成果:
  
  1、该标签内部使用Collection来表示给定的容器,所有的给定容器对象(如ArrayList,Map等)都会被其转化成为Collection,Collection实际就是Map和List的父类。
  
  2、该标签自己维护循环索引,不用程序员管理索引
  
  3、该标签常见的几个属性如下:name、property、scope、id
  
  对应Struts给出的Api说明如下:
  
  name:包括要遍历Collection的Jsp页面的bean的名字(如果property没有被定义),或者是那些通过getter方法获得属性的Jsp中的Bean的名字,这些getter方法返回的是Collection(如果property定义了)。
  
  property:在name命名的Jsp bean中定义的属性的名字,通过getter方法返回一个Collection
  
  scope:指示到哪里去寻找name为名字的bean,如果没有定义缺省为"any scope"
  
  id:如果Collection非空的话,在每次遍历时候Collection中每个元素的名字。
  
  其中除了id每个元素均为Rt expr,这儿的rt expr的意思就是Run Time Expression。明确的说就是,如果你对一个Attribute的<rtexprvalue>指定为true,你就可以在这样的属性中使用<%=%>之类的东东。这个配置文件在tld中。
  
  只有id是必须要说明的。
  
  关于Api说明的说明:
  
  id只是一个临时标识,在下面的<bean:write里面出现的name属性要和id一致才能打印出<bean:write的property,而此property就是在iterator中的属性。
  
  举例说明
  
  以下代码生成一个阶梯状表格
  
  系统 资源 操作
  
  soft3
  res3
  opt3
  soft12
  res12
  opt1211
  soft11
  res11
  opt1111
  
  在此之前传来一个request.getAttribute("userPurview"),所以有在第一个logic中的userPurview,就是在这个request里面寻找userPurview
  
  返回的是一个list
  
  <table width="300" border="0">
  <tr><td>系统</td>
  <td>资源</td>
  <td>操作</td>
  </tr>
  <logic:iterate id="targetSys" name="userPurview" scope="request"> //这个id可以随便起名,但是要注意下文使用的一致性
  <tr bgcolor="#cccccc"><td height="21" class="unnamed2">
  <bean:write name="targetSys" property="cn"/>    //此处name和上面id保持一致,property就是第一个list里面的元素
  </td>
  <td height="21" class="unnamed2"> </td>
  <td height="21" class="unnamed3"> </td>
  </tr>
  <logic:iterate id="targetRes" name="targetSys" property="purviewResList">
  <tr><td height="21" class="unnamed2"> </td><td height="21" class="unnamed5">
  <bean:write name="targetRes" property="cn"/>
  </td>
  <td height="21" class="unnamed6"> </td>
  </tr>
  
  <logic:iterate id="targetOpr" name="targetRes" property="purviewOprList">
  <tr><td height="21" class="unnamed4"> </td><td height="21" class="unnamed4"> </td>
  <td height="21" class="redzi">
  <bean:write property="cn" name="targetOpr"/></td>
  </tr>
  </logic:iterate>
  
  </logic:iterate>
  
  </logic:iterate>
  </table>
  
  结论:
  
  多级迭代和单层差不多,唯一注意的就是id和<bean:write中的name的对应,上级logic的id与下级logic的name对应,并且取出来的要是个Collection,name和id不一定实际需要这个bean,都是虚拟的。
分享到:
评论

相关推荐

    struts1 table标签中Logic的使用属性

    `logic:iterator` 用于遍历集合中的元素,并且可以配合其他标签一起使用。 **示例:** ```jsp &lt;logic:iterate id="item" name="items"&gt; &lt;bean:write name="item" property="name" /&gt;: &lt;bean:write name="item" ...

    logic标签的问题及解答

    在Struts的学习过程中,`&lt;logic:iterate&gt;`标签是经常遇到的一个,它允许我们遍历数组、Collection、Enumeration、Iterator或Map中的元素。 首先,我们来详细解释一下`&lt;logic:iterate&gt;`标签的基本用法: 1. **遍历...

    浙江大学城市学院《J2EE架构与应用开发》期末考试试卷.pdf

    7. Struts 中的 logic:iterator 标签: 在 Struts 中,可以使用 logic:iterator 标签实现对 List 的遍历。 8. Hibernate 的 hbm 配置文件: 在 Hibernate 的 hbm 配置文件中,将某对象的主码类型设为 assigned,...

    Struts标签库 Struts 标签库

    - `s:iterator`标签:遍历集合,例如`&lt;s:iterator value="list"&gt;...&lt;/s:iterator&gt;`,可以用来循环显示列表数据。 4. **优势** - **简化代码**:通过使用Struts2标签,可以减少HTML和JavaScript代码,使JSP页面...

    struts2标签的使用

    8. **s:iterator标签** 用于遍历集合,例如数组、列表或Map。`&lt;s:iterator value="users" var="user"&gt;...&lt;/s:iterator&gt;`,value属性指定要遍历的集合,var属性定义迭代变量名。 9. **条件标签:s:if和s:else** ...

    Struts详细资料整理

    - `&lt;logic:iterator&gt;`:遍历集合。 - 示例: ```jsp &lt;logic:notEmpty name="userlist"&gt; &lt;logic:iterate id="u" name="userlist"&gt; &lt;bean:write name="u" property="username"/&gt; &lt;bean:write name="u" property...

    Struts标签from,bean,logic.pdf

    logic标签: logic标签主要用于控制逻辑流程,如条件判断、循环等。这类标签可以帮助开发者在JSP页面中实现更复杂的逻辑处理。例如&lt;html:if&gt;标签可以根据条件判断来渲染页面中的某部分代码,而&lt;html:iterator&gt;标签则...

    logic标签库.pdf

    2. 常用的logic标签: - equal/notEqual:用于比较两个值是否相等或不等。可以用来比较变量、请求参数、会话属性等。 - empty/notEmpty:检查指定的集合、数组或字符串是否为空。 - greaterEqual/lessEqual/...

    struts 2.0系列2常用的Struts 2.0的标签(Tag)介绍

    接下来,我们详细讨论一些常用的Struts 2.0标签: 1. 非UI标签: - `s:if`, `s:elseif` 和 `s:else`:这些标签用于执行基本的条件流转。例如,你可以根据特定的条件展示不同的内容。`test`属性是必需的,它是一个...

    struts2标签库

    - **`&lt;s:iterator&gt;`**:用于遍历集合中的元素,类似于Struts1中的`&lt;logic:iterate&gt;`,但Struts2的实现更为高效,并且支持更复杂的操作,如排序、过滤等。 #### 结论 Struts2标签库相比于Struts1提供了更多的功能和...

    Java框架之Struct

    - `&lt;logic:iterator&gt;`遍历集合并输出每个元素。 **JSTL(JSP标准标签库)**: JSTL是一个标准的标签库,提供了对迭代、条件判断、数据格式化、XML操作和数据库访问的支持。JSTL 1.0包含四个核心库: - **core**:...

    java web标签大全

    其标签库包括s:标签(如&lt;s:iterator&gt;、&lt;s:if&gt;)、field标签(如&lt;s:textfield&gt;、&lt;s:textarea&gt;)和display标签(如&lt;display:table&gt;),使得开发者能够更方便地操作Action中的属性和处理表单提交。 5. JSF(JavaServer...

    struts2_标签使用方法.doc

    在Struts2中,不再像Struts1.x那样将标签库分为html、bean、logic和tiles等类别,而是统一使用一个`&lt;s&gt;`前缀的标签库,只需在JSP页面头部引入`&lt;%@ taglib prefix="s" uri="/struts-tags" %&gt;`即可使用所有标签。...

    struts2 标签

    在Struts1.x中,标签库被分为几个部分,包括HTML、Tiles、Logic和Bean等,每个部分都有特定的功能。而Struts2则将所有标签统一在了一个URI为`/struts-tags`的命名空间下,虽然没有严格的分类,但可以根据功能将其...

    Struts2常用标签

    接下来,我们将详细探讨一些常见的Struts2标签: 1. **条件标签(if、elseif、else)** 这些标签允许我们在JSP页面中执行基本的条件判断。例如: ```jsp &lt;s:if test="%{condition}"&gt; // 当条件满足时执行的代码...

    struts2.0的标签学习资料

    动作相关标签: 1. `&lt;s:a href=""&gt;` - 创建超链接,与HTML的`&lt;a&gt;`标签类似,可以绑定Action路径。 2. `&lt;s:action name=""&gt;` - 执行指定的Action,通常用于页面间的导航。 3. `&lt;s:actionerror/&gt;` - 显示Action中注册...

    struts2标签 标签使用完整文摘

    UI标签主要包括布局和主题相关的标签,如`&lt;s:form&gt;`用于创建表单,`&lt;s:submit&gt;`用于提交按钮,`&lt;s:iterator&gt;`用于迭代集合数据,`&lt;s:include&gt;`用于动态包含页面等。Struts2还支持自定义主题和皮肤,通过`&lt;s:head&gt;`...

    struts2标签介绍

    - **分类**:Struts1.x的标签库按照功能划分为HTML、Tiles、Logic和Bean等几个部分;而Struts2.0虽然没有明确的分类,但所有的标签都放在了`/struts-tags`这一命名空间下,但从功能上看,可以大致分为非UI标签和UI...

    struts标签解释

    2. **Logic标签**: - `&lt;if&gt;`:根据指定的条件决定是否执行标签内的内容。 - `&lt;iterate&gt;`:遍历集合,常用于显示表格数据。 - `&lt;redirect&gt;`:重定向到一个新的URL。 - `&lt;present&gt;`和`&lt;not-present&gt;`:检查指定的...

    Struts2标签

    Struts2标签库主要分为Action、Display、Field、Logic、Message、Result和Util七大类,每类标签都有特定的用途,帮助开发者构建更加灵活和动态的用户界面。 2. **Action标签** Action标签主要用于调用Struts2的...

Global site tag (gtag.js) - Google Analytics