这篇文章装载来自 http://haidao.blog.51cto.com/59111/340112
今天把角色授权多选框,显示形式改成了3列N行,我的角色授权多选框,是按照角色的个数遍历出的结果
以下是遍历的实现:
<tr>
<td height="26" bgcolor="#FFFFFF" align="right" rowspan="2">
授予角色:
</td>
<td bgcolor="#FFFFFF" align="left" colspan="3">
<table width="320">
<tr>
<s:iterator id="xtjss" value="xtjs" status="statu">
<td >
<input type="checkbox" name="xtjss<s:property value='#xtjss.jsdm'/>" value="<s:property value='#xtjss.jsdm'/>"/>
<s:property value='#xtjss.jsmc'/>
</td>
<s:if test="%{#statu.index > 0 && (#statu.index+1)%3==0}">
</tr><tr>
</s:if>
</s:iterator>
</tr>
<tr>
<td colspan="2">
<input type="checkbox" name="selectAll" id="selectAll" 全选
</td>
</tr>
</table>
</td>
</tr> </tr>
其中“#statu.index > 0 && (#statu.index+1)%3==0”条件,是0、1、2换行3、4、5再换行。。。
主要就是用了下iterator 标签的status属性
以下是网上找的一些资料:
struts2的s:iterator 可以遍历 数据栈里面的任何数组,集合等等 以下几个简单的demo:
s:iterator 标签有3个属性:
value:被迭代的集合
id :指定集合里面的元素的id
status:迭代元素的索引
1:jsp页面定义元素写法 数组或list
<s:iterator value="{'1','2','3','4','5'}" id='number'>
<s:property value='number'/>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类,
List<Attr>
class Attr{String attrName;String getAttrName(){return "123";}}
<s:iterator value="label" id="id">
<s:property value="#id.attrName" />
</s:iterator> 当然value 还可以写成 value="%{label}" label可以有.操作
label的属性List 可以写成value="%{label.list}" 相当于:getLabel().getList();
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>
分享到:
相关推荐
这里使用了Struts2的标签库来遍历`result`集合,展示每条新闻的详细信息,并提供了删除和修改的链接。 #### updatenews.jsp - 修改新闻 ```html <s:iterator value="result" var="n"> 编号为:...
Struts2标签遍历详解 Struts2标签遍历是Struts2框架中的一个重要组件,用于在JSP页面中遍历集合中的元素。该标签可以遍历数组、集合、Map等数据结构,提供了多种方式来访问和操作集合中的元素。 1. 基本用法 ...
Struts2是一个强大的MVC(模型-视图-控制器)框架,被广泛应用于Java Web开发。这个实例项目展示了如何在实际应用中结合Struts2、国际化、类型转换以及Struts2自定义标签来实现用户管理功能,包括用户数据的增删改查...
三、Struts2核心概念 - Action:是Struts2的核心组件,负责处理用户的请求,执行业务逻辑,并返回结果。 - Result:定义了Action执行后的响应方式,如重定向、转发到一个JSP页面等。 - Interceptors(拦截器):在...
Struts2标签API是Struts2框架中一个重要的组成部分,它提供了一系列的预定义标签,使得开发者能够更方便地在JSP页面中处理业务逻辑和展示数据。这些标签极大地简化了视图层的开发,提高了代码的可读性和可维护性。 ...
Struts2是一个强大的MVC(模型-视图-控制器)框架,用于构建Java Web应用程序。在Struts2中实现国际化是一项关键功能,它允许应用程序为不同的语言和地区提供本地化的用户体验。下面将详细介绍如何使用Struts2来实现...
`struts2.0--tags.doc`文档可能详细列出了所有可用的标签及其用法,如`s:property`用于显示Action属性,`s:form`用于创建表单,`s:iterator`用于遍历集合数据,`s:if`和`s:else`用于条件判断,以及`s:submit`用于...
Struts2标签库是Java Web开发中非常重要的一个组件,它是Apache Struts2框架的核心特性之一,极大地简化了视图层的开发工作。Struts2的标签库提供了一系列的JSP标签,使得开发者能够更方便地创建动态网页,提高代码...
3. **配置文件**:`struts.xml`是Struts2的主要配置文件,用于定义Action类、结果页面、拦截器等。你需要熟悉XML配置语法,以便正确配置应用程序。 4. **拦截器(Interceptors)**:拦截器是Struts2的一个强大特性...
Struts2的标签库分为核心标签库、展示标签库、OGNL标签库等,它们提供了丰富的功能,如数据校验、国际化、条件判断、循环遍历等。这些标签能够直接在JSP页面上使用,使得页面逻辑与业务逻辑分离,提高了代码的复用...
3. **后处理**:Action执行完毕后,Struts2会逆序遍历拦截器栈,调用每个拦截器的`afterCompletion()`方法,进行清理或者后处理工作。 4. **销毁**:当应用关闭时,框架会调用拦截器的`destroy()`方法,释放资源。 ...
在Struts2中,拦截器(Interceptor)是实现业务逻辑控制和增强功能的重要机制,而国际化(Internationalization,简称i18n)则能帮助我们构建支持多语言的Web应用。下面将详细解释这两个知识点以及它们如何在Struts2...
Struts2标签库是开发Java Web应用程序时常用的一种工具,它极大地简化了JSP页面的编写,提高了开发效率。在JSP中,我们通常使用`<%@ taglib prefix="s" uri="/struts-tags" %>`来引入Struts2的标签库。下面将详细...
Struts2是一个强大的Java web应用程序框架,它基于Model-View-Controller(MVC)设计模式,简化了开发过程。ActionContext是Struts2框架中一个关键的组件,它提供了当前请求上下文的信息,而OGNL(Object-Graph ...
在Web开发中,Struts2、Ajax和JSON的结合使用能实现异步数据交互,提高用户体验。本实例展示了如何在Struts2框架下,通过Ajax发送请求获取JSON数据,并将数据返回到JSP页面,以填充下拉列表(`<s:select/>`标签)。 ...
除了核心标签库,Struts2还提供了许多其他标签库,如国际化标签库(i18n)、HTML标签库(html标签)以及脚本标签库(scripting标签),这些标签进一步扩展了Struts2的功能。 使用Struts2标签,开发者可以避免直接...
工具会遍历所有的Struts2相关文件,查找可能的风险点,并生成详细的扫描报告,包括漏洞类型、受影响的代码位置、建议的修复措施等。 在攻防对抗中,了解并及时修补这些漏洞至关重要。对于开发者来说,除了定期使用...
#### 三、Struts2标签库简介 Struts2提供了丰富的标签库,这些标签可以帮助开发者更方便地进行页面渲染和数据处理。例如,`<s:iterator>`用于迭代集合对象;`<s:property>`用于获取对象属性值;`<s:set>`用于设置...
- `struts.i18n.encoding`:定义了Struts2处理请求时的字符编码,如设置为`gbk`则用于处理GBK编码的请求。 - `struts.action.extension`:指定默认Action请求的扩展名,通常默认是`action`,但可以通过配置更改为...
3. **拦截器(Interceptors)**:Struts2的一个强大特性是它的拦截器,这些拦截器可以实现如日志记录、权限检查、性能监控等功能。在执行Action之前和之后,拦截器会被调用。 接下来,我们关注资源文件国际化: 4....