Struts2 ognl中的#、%和$符号用法说明 收藏
#、%和$符号在OGNL表达式中经常出现,而这三种符号也是开发者不容易掌握和理解的部分。在这里笔者简单介绍它们的相应用途。
1.#符号的用途一般有三种。
1)访问非根对象属性,例如示例中的#session.msg表达式,由于Struts 2中值栈被视为根对象,所以访问其他非根对象时,需要加#前缀。实际上,#相当于ActionContext. getContext();#session.msg表达式相当于ActionContext.getContext().getSession(). getAttribute(”msg”) 。
2)用于过滤和投影(projecting)集合,如示例中的persons.{?#this.age>20}。
3)用来构造Map,例如示例中的#{'foo1':'bar1','foo2':'bar2'}。
2.%符号
%符号的用途是在标志的属性为字符串类型时,计算OGNL表达式的值。如下面的代码所示:
构造Map
<s:set name="foobar" value="#{'foo1':'bar','foo2':'bar2'}" />
<p>The value of key "foo1" is <s:property value="#foobar['foo1']" /></p>
<p>不使用%:<s:url value="#foobar['foo1']" /></p>
<p>使用%:<s:url value="%{#foobar['foo1']}" /></p>
3.$符号
$符号主要有两个方面的用途。
在国际化资源文件中,引用OGNL表达式,例如国际化资源文件中的代码:reg.agerange=国际化资源信息:年龄必须在${min}同${max}之间。
在Struts 2框架的配置文件中引用OGNL表达式,例如下面的代码片断所示:
<validators>
<field name=”intb”>
<field-validator type=”int”>
<param name=”min”>10</param>
<param name=”max”>100</param>
<message>BAction-test校验:数字必须为${min}为${max}之间!</message>
</field-validator>
</field>
</validators>
分享到:
相关推荐
总的来说,理解并熟练掌握`#`、`%`和`$`在Struts2和OGNL中的用法,对于有效利用Struts2框架进行开发至关重要。这不仅可以帮助你更好地组织和控制应用程序的行为,还能提高代码的可读性和维护性。在实践中,还需要...
### OGNL中的#、%和$符号用法说明 #### 概述 OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,用于获取和设置Java对象的属性。它在许多Java应用框架中得到了广泛应用,尤其是在Struts2中作为...
本文将详细介绍Struts2.0标签库中 `$`, `#`, `%` 的使用方法及其区别。 #### 二、Struts2.0 标签概述 ##### 1. 通用标签 - **Property** - 用于展示数据栈中的数据。 - 支持默认值设置。 - 可以控制HTML转义。...
在给定的文档中,我们关注的是`#.%.$`这三种符号在OGNL中的用法。以下是它们的具体解释: 1. `#`:此符号在OGNL中代表Action Context。在Struts2中,Action Context包含了请求、会话、应用范围内的属性,以及Value ...
本文将深入探讨OGNL中`#`,`%`,`$`这三个特殊符号的用法。 首先,`#`符号在OGNL中的主要作用是访问Stack Context中的值,以及创建和访问特定的命名对象。例如,`#parameters`对象可以用来获取HTTP请求参数,`#...
3. **表达式语言(OGNL)**:Struts 2.0采用OGNL(Object-Graph Navigation Language)作为默认的表达式语言,允许开发者在视图层便捷地访问模型数据。 4. **丰富的插件支持**:Struts 2.0拥有众多插件,可以扩展...
在开发过程中,"struts2.0中文帮助手册.chm"将详细解释如何创建Action类、配置Action、编写JSP视图、使用OGNL表达式以及调试和优化应用。手册还会介绍Struts2与Spring、Hibernate等其他框架的集成,以及如何处理安全...
根据提供的文件信息,我们可以深入探讨OGNL(Object-Graph Navigation Language)表达式中涉及的关键符号:#、% 和 $ 的具体用法与应用场景。 ### 一、符号“#”的应用 在OGNL表达式中,“#”这个符号主要用于访问...
这个“struts2.0中文帮助手册”应该包含了Struts2.0框架的详细使用指南、配置示例、API文档以及常见问题解答等内容,对于开发者来说,是学习和工作中不可或缺的工具。通过深入学习和理解手册中的内容,开发者可以更...
该“struts2.0中文帮助手册”是开发者在学习和使用Struts2.0框架时的重要参考资料。它包含了框架的全面介绍、配置指南、API文档以及示例代码,帮助开发者理解和掌握Struts2的核心概念和功能。 在手册中,你可以找到...
因此,使用Struts 2.0时,应保持框架和依赖库的最新版本,避免使用易受攻击的API,并遵循安全编码规范,例如使用预编译的表达式,限制OGNL表达式的使用等。 总之,Struts 2.0是一个强大且功能丰富的Web开发框架,它...
camel-ognl-1.6.4.jar, camel-ognl-2.8.1.jar, com.springsource.org.ognl-2.6.9.jar, com.springsource.org.ognl-sources-2.6.9.jar, ognl-2.5.1.jar, ognl-2.6.11.jar, ognl-2.6.3.jar, ognl-2.6.5.jar, ognl-...
01 为Struts 2.0做好准备 02 常用的Struts 2.0的标志(Tag) 03 Struts 2.0的Action讲解 04 在Struts 2.0中国际化(i18n)您的应用程序 ...11 Struts 2中的OGNL 12 trus 2的新表单标志的使用 13 Struts 2与AJAX
本篇文章将深入探讨OGNL在Struts2.0中的应用及其重要性。 一、OGNL简介 OGNL,全称为Object-Graph Navigation Language,是一种强大的、动态的、类型安全的表达式语言,允许程序开发者通过简单的字符串表达式来访问...
2. **方法调用**:可以使用OGNL调用对象的方法,如`list.add("item")`。 3. **集合操作**:支持对集合进行操作,如`list[0]`访问列表的第一个元素,`map["key"]`访问映射中的值。 4. **运算符支持**:包括算术运算...
Struts2.0是Java企业级开发中广泛使用的MVC框架,它是在Struts1.x的基础上发展起来的,旨在提供更强大的功能、更好的性能和更灵活的架构。本教程全面覆盖了Struts2.0的核心概念和技术,为初学者和进阶开发者提供了...
1. **OGNL(Object-Graph Navigation Language)**:介绍Struts2中使用的表达式语言,用于在Action和视图之间传递数据。 2. **Action与Result**:详细阐述Action类的设计和编写,以及如何定义Result来控制流程跳转...
在Struts2.0中,Action的执行方法通常命名为execute(),但并不强制,可以通过配置文件指定任何方法作为执行入口。当Action执行完毕后,返回一个字符串,这个字符串将决定页面的流转方向,比如“input”可能指向输入...
2. **动态方法调用**:除了属性访问,OGNL还支持动态方法调用,例如`list.add(item)`,可以在运行时根据表达式找到并调用合适的方法。 3. **上下文映射**:OGNL使用一个上下文映射(Context Map),其中存储了变量...