`
zhou568xiao
  • 浏览: 96815 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

Struts2中三种表达式符号的用法

阅读更多

在做struts2项目中经常遇到 “#”,“%”,“$”三种表达式符号,一直都是糊里糊涂的用着,至于他们的区别也不太清楚,后来从网上查了一些资料,记下来以备查阅。

“#”主要有三种用途:  
  
   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>

分享到:
评论
1 楼 zhengyutong 2009-09-04  
我也是糊里糊涂的使用。三个符号来回换,哪个好使就用哪吧。

相关推荐

    struts2标签和OGNL表达式.pdf

    OGNL(Object-Graph Navigation Language)是一种功能强大的表达式语言,用于获取和设置Java对象的属性,它广泛应用于Struts2框架中用于数据访问和表达式的解析。OGNL表达式提供了简洁的语法来访问和操作对象图,...

    struts2 ognl表达式

    Struts2 OGNL表达式是Java Web开发中一个重要的概念,它是一种强大的对象图形导航语言(Object-Graph Navigation Language)。在Struts2框架中,OGNL被广泛用于视图层,作为数据绑定的主要手段,使得开发者能够方便...

    struts2中#号的用法

    通过本文的介绍,我们了解到Struts2框架中`#`符号的重要作用及其使用方法。正确使用`#`符号可以帮助开发者更高效地管理和传递数据,同时也能增强程序的安全性和稳定性。希望本文能对正在学习Struts2框架的朋友有所...

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

    然而,在Struts2的配置文件中,`$`通常不单独使用,而是与`{}`结合,形成`${expression}`这样的结构,用于在XML配置中嵌入OGNL表达式。例如,`${user.name}" /&gt;`将显示`user`对象的`name`属性的值。 在提供的文件...

    struts2 ognl的用法

    在Struts2中使用OGNL表达式主要涉及以下几种符号:“#”、“%”和“$”。 ##### 1. “#”符号的使用 - **访问Struts2上下文**: - `#`可用于访问当前的`ActionContext`,如`#ActionContext.getContext()`。 - ...

    STRUTS2标签中符号_,$,%的用法示例.doc

    在STRUTS2的标签中,`#`,`$`, `%`这三种特殊符号扮演着重要的角色,尤其是在处理OGNL表达式时。下面将详细解释这三个符号的用途。 1. `#` 符号: - **访问非根对象属性**:在STRUTS2中,ActionContext是默认的根...

    struts2 OGNL语言学习笔记

    OGNL(Object-Graph Navigation Language)是 Struts 2 中的一种表达式语言,主要用于简化 JSP 页面中的编码,使页面与后台代码分离。下面是 OGNL 语言的主要特点和用法: 1. 支持对象方法调用:OGNL 允许用户调用...

    教案第五章struts2的标签库.pdf

    $ 符号用于在国际化资源文件中引用 OGNL 表达式和在 Struts 2 框架的配置文件中引用 OGNL 表达式。 Struts 2 标签库可以分为三类:UI 标签、数据标签和逻辑标签。UI 标签用于生成用户界面,数据标签用于显示和输出...

    struts2综合复习习题

    - OGNL(对象图导航语言)是一种强大的表达式语言,用于在Struts2中访问和操作对象。OGNL的根对象是`ValueStack`,它是Struts2框架内部用于存储请求作用域中的所有对象的容器。 #### 九、在jsp页面中可以通过Struts2...

    OGNL表达式

    - **$**:在JSP页面中表示EL表达式的开头,但在Struts2中通常不直接使用,而是通过#符号配合使用。 #### 五、示例代码详解 为了更好地理解OGNL表达式的使用,我们来看一个具体的示例。假设我们在开发一个简单的Web...

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

    本案例提供ognl使用详解,测试通过,只需解压放入自己WEB项目中,执行struts_ognl包内java文件即可(未提供jia包,若需要可以联系...用法:OGNL是通常要结合Struts 2的标志一起使用。主要是#、%和$这三个符号的使用;

    struts2学习心得

    本文总结了Struts2的常用方法和经验,涵盖了配置问题、EL表达式、Struts2的架构和Namespace等方面的知识点。 一、配置问题 Struts2的最新版本为GA 2.2.1,需要以下几个类库: 1.commons-fileupload-1.2.1.jar 2....

    第五章struts2的标签库.pdf

    $ 符号用于在国际化资源文件中引用 OGNL 表达式和在 Struts 2 框架的配置文件中引用 OGNL 表达式。 Struts 2 的标签库可以分为三类:UI 标签、数据标签和逻辑标签。UI 标签主要用于生成 HTML 页面,数据标签用于...

    ognl.rar_OGNL API_struts2 ognl api_struts2帮助文档

    OGNL(Object-Graph Navigation Language)是Struts2框架中重要的表达式语言,它用于在应用程序中进行数据绑定和表达式求值。这篇文档将详细解释OGNL API及其在Struts2框架中的应用。 首先,OGNL是一个强大的、动态...

    struts2中OGNL的一些概念及原理说明

    4. **OGNL的六种使用方法**:在实际应用中,OGNL表达式具有多种用途,包括但不限于: - **基本用法**:如上例所示,直接通过对象属性的方式来访问或设置数据。 - **转换为字符串**:有时需要将OGNL表达式的结果...

    Struts 2中的OGNL教程

    #### 三、Struts 2 支持的表达式语言 Struts 2 支持多种表达式语言,包括但不限于: 1. **OGNL**:作为默认的表达式语言,具有上述所述的优势。 2. **JSTL (JSP Standard Tag Library)**:JSP 2.0 标准的一部分,...

    OGNL符号的使用

    OGNL 符号的使用 OGNL(Object-Graph Navigation Language)是一...OGNL 表达式在 Struts2 中的使用非常广泛,开发者需要充分了解“%”、“#”、“$”这三个符号的使用规则,以便更好地使用 OGNL 表达式提高开发效率。

    struts2框架面试题及答案02

    根据给定的信息,我们将深入探讨Struts2框架中的一些核心概念,包括OGNL表达式的使用、ValueStack的理解及其数据存取方法,以及拦截器的生命周期等。 ### OGNL表达式及其三要素 #### OGNL简介 OGNL(Object-Graph ...

    Struts2_OGNL 笔记

    Struts2_OGNL笔记主要关注的是如何在Struts2框架中使用OGNL(Object-Graph Navigation Language)表达式语言。OGNL作为一种强大的表达式语言,常用于Struts2的视图层,允许开发者轻松地访问和操作Java对象的属性。 ...

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

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

Global site tag (gtag.js) - Google Analytics