转自:http://hi.baidu.com/golotus/blog/item/82e7ded4cf631807a08bb77f.html/cmtid/e3de75a46a9a11fb9152ee3e
struts2 OGNL,struts2
表达式语言,Struts2 中OGNL表达式的用法,Struts2 #,表达式语言的好处,Struts2 $,struts2 井号,星号,百分号
表达式语言主要有以下几大好处:
1. 避免(MyType)
request.getAttribute()和myBean.getMyProperty()之类的语句,使页面更简洁;
2. 支持运算符(如+-*/),比普通的标志具有更高的自由度和更强的功能;
3. 简单明了地表达代码逻辑,使用代码更可读与便于维护。
Struts2 中OGNL表达式的用法:
OGNL(Object-Graph Navigation Language),可以方便地操作对象属性的开源表达式语言;
“#”
主要有三种用途:
1.
访问OGNL上下文和Action上下文,#相当于ActionContext.getContext();下表有几个ActionContext中有用
的属性:
名称 作用 例子
parameters 包含当前HTTP请求参数的Map
#parameters.id[0]作用相当于request.getParameter("id")
request 包含当前HttpServletRequest的属性(attribute)的Map
#request.userName相当于request.getAttribute("userName")
session 包含当前HttpSession的属性(attribute)的Map
#session.userName相当于session.getAttribute("userName")
application 包含当前应用的ServletContext的属性(attribute)的Map
#application.userName相当于application.getAttribute("userName")
attr 用于按request > session >
application顺序访问其属性(attribute)
#attr.userName相当于按顺序在以上三个范围(scope)内读取userName属性,直到找到为止
2. 用于过滤和投影(projecting)集合,如books.{?#this.price<100};
3. 构造Map,如#{'foo1':'bar1', 'foo2':'bar2'}。
“%”
的用途是在标志的属性为字符串类型时,计算OGNL表
达式的值。例如在Ognl.jsp中加入以下代码:
<hr />
<h3>%的用途</h3>
<p><s:url value="#foobar['foo1']" /></p>
<p><s:url value="%{#foobar['foo1']}" /></p>
“$”
有两个主要的用途 :
1. 用于在国际化资源文件中,引用OGNL表达式,例子请参考《在Struts 2.0中国际化(i18n)您的应用程序》
2. 在Struts 2配置文件中,引用OGNL表达式,如
<action name="AddPhoto" class="addPhoto">
<interceptor-ref name="fileUploadStack"
/>
<result
type="redirect">ListPhotos.action?albumId=${albumId}</result>
</action>
分享到:
相关推荐
本文将详细介绍Struts2.0标签库中 `$`, `#`, `%` 的使用方法及其区别。 #### 二、Struts2.0 标签概述 ##### 1. 通用标签 - **Property** - 用于展示数据栈中的数据。 - 支持默认值设置。 - 可以控制HTML转义。...
综上所述,了解Struts2框架中OGNL表达式的用法及其区别对于开发高质量的Web应用程序至关重要。“#”、“$”和“%”符号在不同的场景下发挥着各自独特的作用,合理运用这些符号能够显著提升应用程序的性能和用户体验...
### `% # $`的区别及用法 在Struts2框架中,`%`, `#`, `$` 这三...通过以上分析,我们可以看出 `%`, `#`, `$` 这三个符号在Struts2中的应用场景各有不同,合理选择和使用这些符号可以帮助开发者更高效地完成开发任务。
- **Struts2**: 在Struts2中,可以通过初始化、设置属性和调用方法等方式轻松地测试Action。依赖注入的支持进一步简化了测试过程,使开发者能够更加专注于逻辑验证而非环境配置。 #### 5. 输入数据的处理方式 - **...
本文将详细介绍`#`符号的使用方法及其应用场景,帮助读者更好地理解和掌握Struts2框架的相关知识。 #### 一、Struts2简介 Struts2是基于Struts1的基础上发展起来的一款开源Web应用框架,它使用MVC(Model-View-...
### OGNL中的#、%和$符号用法说明 #### 概述 OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,用于获取和设置Java对象的属性。它在许多Java应用框架中得到了广泛应用,尤其是在Struts2中作为...
总的来说,理解并熟练掌握`#`、`%`和`$`在Struts2和OGNL中的用法,对于有效利用Struts2框架进行开发至关重要。这不仅可以帮助你更好地组织和控制应用程序的行为,还能提高代码的可读性和维护性。在实践中,还需要...
### Struts1与Struts2的主要区别 #### 概述 Apache Struts 是一个用于构建企业级Java Web应用的开源框架。它分为两个版本:Struts1 和 Struts2。虽然两者都基于模型-视图-控制器(MVC)设计模式,但它们之间存在...
根据提供的文件信息,我们可以深入探讨OGNL(Object-Graph Navigation Language)表达式中涉及的关键符号:#、% 和 $ 的具体用法与应用场景。 ### 一、符号“#”的应用 在OGNL表达式中,“#”这个符号主要用于访问...
### Struts1与Struts2的主要区别 #### 一、Action执行机制的不同 - **Struts1**: 在Struts1框架中,Action是基于单例模式的,这意味着所有的请求都会共享同一个Action实例。这就导致了如果在Action中保存实例变量...
#### 16.2 在Struts2中使用Ajax - **JSON数据格式**:通过Action返回JSON格式的数据。 - **异步请求**:使用jQuery等JavaScript库来发送异步请求。 以上就是关于“研磨Struts2”的主要知识点梳理,通过深入学习...
- **学习资源**:对于初学者来说,可以通过官方文档、在线教程和实战项目来深入学习Struts1和Struts2的使用方法和最佳实践。 - **持续关注技术更新**:虽然Struts2相比Struts1有了很大的改进,但随着技术的发展,还...
通过以上几个示例,我们可以看到 `<s:if>` 标签在 Struts2 中的应用是非常灵活和强大的。它可以用来实现各种复杂的逻辑判断,如数值比较、字符串匹配等。此外,结合其他标签如 `<s:iterator>`,可以实现更复杂的逻辑...
在Java Web开发领域,Struts2是一个非常流行的MVC框架,它帮助开发者构建动态、数据驱动的Web应用程序。在Struts2中,`$`, `#`, `%`这三...理解这些符号的用法,可以帮助开发者更有效地在Struts2应用中管理和访问数据。
从给定的文件信息来看,标题“struts2中文学习文档”和描述“struts2的根本webwork2”表明这是一份关于Struts2框架的学习资料,特别强调了Struts2与WebWork2的关系。Struts2是Apache Struts的一个版本,它是一个用于...
### 轻量级J2EE企业应用实战:Struts + Spring + Hibernate整合开发 #### 概述 本文深入探讨了轻量级...通过深入理解并熟练掌握这些框架的特性和使用方法,开发者可以构建出更加健壮、灵活和易于维护的企业级应用。
### Struts2中OGNL的使用详解 #### 一、OGNL简介 OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,用于获取或设置一个对象图中的属性。它在Struts2框架中扮演着极其重要的角色,是Struts2实现...
赠送jar包:struts2-json-plugin-2.3.24.jar; 赠送原API文档:struts2-json-plugin-2.3.24-javadoc.jar; 赠送源代码:struts2-json-...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
- **访问非根对象属性**:在STRUTS2中,ActionContext是默认的根对象,但如果你需要访问像Session这样的非根对象,你需要使用`#`前缀。例如,`#session.msg`表示获取ActionContext的Session属性中的'msg'键的值,...