本文将深入探讨Struts 2框架中的OGNL表达式语言,特别是其“%”和“$”操作符在Struts 2标签库中的应用。Struts 2作为一个强大的MVC框架,它的表现层设计极大地提升了开发效率,其中OGNL(对象图导航语言)扮演了核心角色。它允许开发者方便地访问对象属性和集合,增强了对集合对象的操作。 1. OGNL的“%”操作符 “%”操作符在OGNL中主要用于选择和投影集合,这使得处理集合数据变得更加灵活。以下是一些用法: - **选择**:`books.{?#this.price<100}` 这个表达式会选择价格低于100的所有书籍。它会从`books`集合中筛选出价格符合条件的元素。 - **投影**:`books.{?#this.price<100}.{bookName}` 在选择满足条件的书籍后,这个表达式进一步投影出这些书籍的`bookName`属性,即返回价格低于100的书籍的名字列表。 此外,“%”还可以用于构造Map,例如:`#{'book1':'23','book2':'36'}` 创建一个键值对为`book1`和`23`,`book2`和`36`的Map。 在Struts 2的标签属性中,可以使用“%”和花括号来计算OGNL表达式的值。例如,`label="%{username}"` 或 `label="%{#session.username}"`,这会根据当前的用户名或会话中的用户名设置标签的值。 2. OGNL的“$”操作符 “$”在OGNL中有两个主要用途: - **国际化资源文件引用**:在国际化资源文件中,如`ResourceBundle`,可以使用`${min}`和`${max}`这样的表达式引用OGNL表达式。这使得动态地从资源文件中获取值成为可能。 - **Struts2配置文件引用**:在Struts2的配置文件中,`<result>`标签可以包含`${type}`这样的OGNL表达式,例如`<result>admin.jsp?type=${type}</result>`。这允许根据运行时的变量动态决定结果页面。 结合Struts2的标签库,开发者可以利用OGNL的强大功能来构建动态且灵活的视图页面。例如,Struts2提供了多种类型的标签,包括表单标签、数据标签、控制标签以及非表单UI标签,如防止重复提交的`<s:token/>`标签。这些标签与OGNL的结合使用,极大地简化了JSP页面的编写,提高了代码的可读性和可维护性。 Struts2标签库与OGNL的结合是Struts2表现层的一大亮点,它使开发者能更高效地处理数据,构建复杂的用户界面,而无需过多地涉及底层的Java代码。通过熟练掌握OGNL的“%”和“$”操作符,开发者可以更自如地驾驭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这个错误,是什么原因? 巴黎巨星岬太郎 -
粉丝: 18
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理
展开
- 我的资源
快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分
登录查看自己的积分
- 我的C币
登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
-
C++多态实现机制详解:虚函数与早期绑定
-
Java多线程与异常处理详解
-
校园导游系统:无向图实现最短路径探索
-
SQL2005彻底删除指南:避免重装失败
-
GTD时间管理法:提升效率与组织生活的关键
-
Python进制转换全攻略:从10进制到16进制
-
商丘物流业区位优势探究:发展战略与机遇
-
C语言实训:简单计算器程序设计
-
Oracle SQL命令大全:用户管理、权限操作与查询
-
Struts2配置详解与示例
-
C#编程规范与最佳实践
-
C语言面试常见问题解析
-
超声波测距技术详解:电路与程序设计
-
反激开关电源设计:UC3844与TL431优化稳压
-
Cisco路由器配置全攻略
-
SQLServer 2005 CTE递归教程:创建员工层级结构
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证 文档复制为VIP权益,开通VIP直接复制 信息提交成功
- 粉丝: 18
- 资源: 2万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++多态实现机制详解:虚函数与早期绑定
- Java多线程与异常处理详解
- 校园导游系统:无向图实现最短路径探索
- SQL2005彻底删除指南:避免重装失败
- GTD时间管理法:提升效率与组织生活的关键
- Python进制转换全攻略:从10进制到16进制
- 商丘物流业区位优势探究:发展战略与机遇
- C语言实训:简单计算器程序设计
- Oracle SQL命令大全:用户管理、权限操作与查询
- Struts2配置详解与示例
- C#编程规范与最佳实践
- C语言面试常见问题解析
- 超声波测距技术详解:电路与程序设计
- 反激开关电源设计:UC3844与TL431优化稳压
- Cisco路由器配置全攻略
- SQLServer 2005 CTE递归教程:创建员工层级结构