Struts2 Iterator标签详解与优势
"本文主要介绍了Struts2框架中的iterator标签及其使用方法,以及Struts2框架的优势和特性,包括无侵入式设计、拦截器、类型转换器、多视图支持、输入验证和国际化资源管理。同时,提到了从Struts1向Struts2迁移的一些考虑因素。" 在Struts2框架中,`iterator`标签是一个非常实用的组件,它允许开发者遍历集合对象,如List、Set或数组,并在页面上展示或操作这些集合的元素。`iterator`标签通过以下属性来控制其行为: 1. `value`属性:可选,定义要迭代的集合对象。如果不设置,Struts2会默认使用ValueStack栈顶的集合。 2. `var`属性:可选,用于创建一个局部变量,将当前迭代的元素存储在其中,方便在迭代过程中访问。 3. `status`属性:可选,提供了一个`IteratorStatus`对象,包含了关于迭代状态的方法,如获取当前元素的索引、判断是否为偶数或奇数,以及是否是第一个或最后一个元素。 下面是一个使用`iterator`标签的例子: ```xml <s:iterator value="allList"> <s:property value="name"/> </s:iterator> <s:iterator value="allList" var="person" begin="2" end="7" step="2"> <s:property value="#person.name"/><s:property value="#person.age"/> </s:iterator> ``` 这段代码首先迭代`allList`集合,并打印出每个元素的`name`属性。然后,它从第二个元素开始,每隔两个元素,输出`name`和`age`属性。 Struts2是一个强大的MVC框架,解决了许多Web应用开发中的常见问题,如页面导航、输入验证、布局统一、可扩展性、国际化和本地化,以及对Ajax的支持。与Struts1相比,Struts2具有以下优势: 1. **无侵入式设计**:Struts2的应用不依赖ServletAPI和StrutsAPI,降低了框架与应用的耦合度。 2. **拦截器**:提供了AOP编程模型,便于实现如权限拦截等高级功能。 3. **类型转换器**:自动处理请求参数的类型转换,简化了开发者的工作。 4. **多视图支持**:支持JSP、FreeMarker、Velocity等多种表现层技术,提高了灵活性。 5. **输入验证**:可以在特定方法级别进行验证,增强了验证的灵活性。 6. **国际化资源管理**:提供了全局、包级和Action级别的国际化资源文件管理。 从Struts1迁移到Struts2时,由于两者设计理念的差异,需要理解Struts2的架构和核心概念,如Action、Interceptor和Result,以及它们如何协同工作。虽然名字相近,但Struts2实际上是在WebWork的基础上发展起来的,因此从Struts1到Struts2的迁移需要对新框架有深入的理解和适应。
在struts2 2.3.15.1版本中将jsp页面中的<c:if test="${empty pageFinder.data }"> <td colspan=13 align="center” height="25"xfont color="red"没有查询到相关记录</f</c:if> <s:iterator value="%{pageFinder.data}" var="rehs” status="status"><s:set var="index”value="#status getIndex()"/> 这段代码中的<s:iterator value="%{pageFinder.data}"改为<s:iterator value="${pageFinder.data}"系统会报does not accept any expressions这个错误,是什么原因? 韩大人的指尖记录 -
粉丝: 27
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理
展开
- 我的资源
快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分
登录查看自己的积分
- 我的C币
登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
-
李兴华Java基础教程:从入门到精通
-
U盘与硬盘启动安装教程:从菜鸟到专家
-
C++面试宝典:动态内存管理与继承解析
-
C++ STL源码深度解析:专家级剖析与关键技术
-
C/C++调用DOS命令实战指南
-
神经网络补偿的多传感器航迹融合技术
-
GIS中的大地坐标系与椭球体解析
-
海思Hi3515 H.264编解码处理器用户手册
-
Oracle基础练习题与解答
-
谷歌地球3D建筑筛选新流程详解
-
CFO与CIO携手:数据管理与企业增值的战略
-
Eclipse IDE基础教程:从入门到精通
-
Shell脚本专家宝典:全面学习与资源指南
-
Tomcat安装指南:附带JDK配置步骤
-
NA3003A电子水准仪数据格式解析与转换研究
-
自动化专业英语词汇精华:必备术语集锦
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证 文档复制为VIP权益,开通VIP直接复制 信息提交成功
- 粉丝: 27
- 资源: 2万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦