`
chw0892
  • 浏览: 21513 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

OGNL的#,$,%的区别(来源于CNDS)

阅读更多
表达式语言主要有以下几大好处:  
  
   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>

分享到:
评论

相关推荐

    OGNL中的#、%和$符号用法说明

    ### OGNL中的#、%和$符号用法说明 #### 概述 OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,用于获取和设置Java对象的属性。它在许多Java应用框架中得到了广泛应用,尤其是在Struts2中作为...

    Struts2 ognl中的#、%和$符号用法说明

    在OGNL表达式中,`#`、`%`和``$`符号扮演着不同的角色,它们是OGNL语法的重要组成部分。下面将详细介绍这三个符号的用法。 1. `#`(哈希符号) `#`在OGNL中代表“上下文引用”或“值栈引用”。在Struts2中,请求...

    % # $ 的区别 及用法

    ### `% # $`的区别及用法 在Struts2框架中,`%`, `#`, `$` 这三个符号有着不同的用途与含义。正确理解它们之间的差异有助于更好地使用Struts2进行开发工作。 #### 1. `%` 符号 在Struts2中,`%` 主要用于表达式...

    OGNL表达式中的#、%和$.txt

    根据提供的文件信息,我们可以深入探讨OGNL(Object-Graph Navigation Language)表达式中涉及的关键符号:#、% 和 $ 的具体用法与应用场景。 ### 一、符号“#”的应用 在OGNL表达式中,“#”这个符号主要用于访问...

    struts2.0标签$ # %的区别

    - **用途**:主要用于将文本属性解析为OGNL表达式,适用于原本是OGNL表达式的场景。 - **注意事项**:对于已经是OGNL表达式的属性不起作用。 - **示例**: ```xml &lt;s:property value="%{username}" /&gt; ``` 这里`...

    ONGL中(#.%.$)三种符号的用法.docx

    在Struts2中,OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,用于获取和设置对象的属性。在给定的文档中,我们关注的是`#.%.$`这三种符号在OGNL中的用法。以下是它们的具体解释: 1. `#`:此...

    #和$的区别

    ### Struts2中#与$的区别及OGNL表达式的运用 #### 一、OGNL概述与Struts2中的角色 **OGNL**(Object-Graph Navigation Language)是一种强大的表达式语言,用于获取或设置Java对象图中的属性。在Struts2框架中,OGNL...

    ONGL中(#.%.$)三种符号的用法.pdf

    在Struts2框架中,OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,用于获取和设置Java对象的属性。本文将深入探讨OGNL中`#`,`%`,`$`这三个特殊符号的用法。 首先,`#`符号在OGNL中的主要作用是...

    Struts2 $,#,%详解及实例代码

    首先,`$`符号在Struts2的表达式语言(OGNL,Object-Graph Navigation Language)中用于访问对象的属性。在JSP页面中,`$`通常用来从Action上下文或ValueStack中获取对象的属性值。在提供的代码示例中,`${person....

    ognl表达式java使用案例详解(测试通过)

    本案例提供ognl使用详解,测试通过,只需解压放入自己WEB项目中,执行struts_ognl包内java文件即可(未提供jia包,若需要可以联系留言发至邮箱),若测试不好可以联系本人提供指导. Struts 2默认的表达式语言是OGNL...

    OGNL表达式

    在Struts2框架中,默认使用的表达式语言即为OGNL,这是因为相比于其他表达式语言(如JSTL、Groovy和Velocity等),OGNL具有以下显著优点: 1. **支持对象方法调用**:OGNL允许直接调用对象的方法,而无需显式创建...

    ognl表达式 ognl表达式

    在Struts2框架中,OGNL表达式被广泛应用于视图层,比如在JSP页面中用来获取数据。OGNL表达式的语法简洁明了,例如: - **直接调用方法**:`xxx.sayHello()`。 - **访问静态方法和常量**:`@java.lang.String@format...

    OGNL符号的使用

    在使用 OGNL 表达式时,需要注意“%”和“#”符号的区别。“%”符号用于告诉执行环境 %{} 里的是 OGNL 表达式,而“#”符号用于访问非根对象、过滤和投影集合、构造 Map 等。 此外,OGNL 表达式还可以用于操作集合...

    struts2 ognl的用法

    ### Struts2中OGNL的使用详解 #### 一、OGNL简介 OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,用于获取或设置一个对象图中的属性。它在Struts2框架中扮演着极其重要的角色,是Struts2实现...

    ognl.jar资源包

    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-...

    OGNL教程,简单,看完懂OGNL语言

    随着时间的发展,OGNL逐渐演变为处理复杂数据关系的语言,广泛应用于多个知名Web框架,如WebWork(Struts2的前身)和Tapestry。 OGNL的语法简洁而强大,其基本单位是“导航链”,它可以用来访问对象的属性、调用...

    ognl和el区别

    在Struts2框架中,OGNL(Object-Graph Navigation Language)和EL(Expression Language)都是用于数据绑定和表达式处理的重要工具,它们在处理视图层与模型层的数据交互方面发挥着关键作用。理解这两者的差异有助于...

    Struts2之Ognl详解案例TextOgnl

    在Struts2中,OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,用于获取和设置对象的属性。这篇博客将深入探讨OGNL在Struts2中的应用,并通过案例"TextOgnl"来展示其工作原理。 一、OGNL的基本...

    JS:ognl表达式

    OGNL 表达式是一种功能强大且灵活的工具,适用于各种 Java 应用程序。通过对 OGNL 表达式的深入理解和掌握,开发者可以更高效地处理对象图,实现更复杂的业务逻辑。无论是对于初学者还是经验丰富的开发者来说,掌握 ...

    ognl图形导航语言

    OGNL,全称为Object-Graph Navigation Language,是一种强大的开源表达式语言,主要用于便捷地操作对象的属性和方法。在Struts2框架中,OGNL作为默认的表达式语言发挥着核心作用,允许开发者以简洁的方式访问和修改...

Global site tag (gtag.js) - Google Analytics