`
nearboy
  • 浏览: 2454 次
  • 性别: Icon_minigender_1
  • 来自: 三齐南
社区版块
存档分类
最新评论

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};


OGNL支持类似数据库中的投影(projection) 和选择(selection)。

投影就是选出集合中每个元素的相同属性组成新的集合,类似于关系数据库的字段操作。投影操作语法为 collection.{XXX},其中XXX 是这个集合中每个元素的公共属性。

例如:group.userList.{username}将获得某个group中的所有user的name的列表。

选择就是过滤满足selection 条件的集合元素,类似于关系数据库的纪录操作。选择操作的语法为:collection.{X YYY},其中X 是一个选择操作符,后面则是选择用的逻辑表达式。而选择操作符有三种:
? 选择满足条件的所有元素
^ 选择满足条件的第一个元素
$ 选择满足条件的最后一个元素

例如:group.userList.{? #this.name != null}将获得某个group中user的name不为空的user的列表。

     3、构造Map,如#{'foo1':'bar1', 'foo2':'bar2'}。

二、"%"的用法

    “%”符号的用途是在标志的属性为字符串类型时,计算OGNL表达式的值。例如在Ognl.jsp中加入以下代码:

    <h3>%的用途</h3>
    <p><s:url value="#foobar['foo1']" /></p>
    <p><s:url value="%{#foobar['foo1']}" /></p>

三、"$"的用法

    1、用于在国际化资源文件中,引用OGNL表达式

    2、在Struts 2配置文件中,引用OGNL表达式

     例如:
         <action name="AddPhoto" class="addPhoto">
            <interceptor-ref name="fileUploadStack" />           
            <result type="redirect">ListPhotos.action?       albumId=${albumId}</result>
        </action>

分享到:
评论

相关推荐

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

    下面将详细介绍这三个符号的用法。 1. `#`(哈希符号) `#`在OGNL中代表“上下文引用”或“值栈引用”。在Struts2中,请求处理时会创建一个值栈,它包含了Action对象和其他相关数据。当我们使用`#`符号时,我们...

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

    综上所述,`#`、`%`和`$`这三个符号在OGNL表达式中扮演着不同的角色,分别用于访问根对象属性、计算字符串类型的表达式值以及引用OGNL表达式。熟练掌握它们的用法可以帮助开发者更高效地利用OGNL表达式进行数据处理...

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

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

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

    本文将深入探讨OGNL中`#`,`%`,`$`这三个特殊符号的用法。 首先,`#`符号在OGNL中的主要作用是访问Stack Context中的值,以及创建和访问特定的命名对象。例如,`#parameters`对象可以用来获取HTTP请求参数,`#...

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

    综上所述,“#”、“%”和“$”这三个符号在OGNL表达式中的使用各有侧重。“#”主要用于访问不同作用域中的变量;“%”则是在XML配置文件中使用OGNL表达式的一种特殊语法;而“$”符号则主要用于模板文件中OGNL...

    struts2中#号的用法

    本文将详细介绍`#`符号的使用方法及其应用场景,帮助读者更好地理解和掌握Struts2框架的相关知识。 #### 一、Struts2简介 Struts2是基于Struts1的基础上发展起来的一款开源Web应用框架,它使用MVC(Model-View-...

    % # $ 的区别 及用法

    ### `% # $`的区别及用法 在Struts2框架中,`%`, `#`, `$` 这三...通过以上分析,我们可以看出 `%`, `#`, `$` 这三个符号在Struts2中的应用场景各有不同,合理选择和使用这些符号可以帮助开发者更高效地完成开发任务。

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

    下面将详细解释这三个符号的用途。 1. `#` 符号: - **访问非根对象属性**:在STRUTS2中,ActionContext是默认的根对象,但如果你需要访问像Session这样的非根对象,你需要使用`#`前缀。例如,`#session.msg`表示...

    #和$的区别

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

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

    在Struts2中,`$`, `#`, `%`这三个符号在不同场景下有着特定的含义。这里我们将深入探讨它们在Struts2中的用法,并通过一个具体的实例代码来阐述。 首先,`$`符号在Struts2的表达式语言(OGNL,Object-Graph ...

    struts2 OGNL语言学习笔记

    在使用 OGNL 时,经常遇到的问题是 #、% 和 $ 这三个符号的使用。例如:&lt;s:property value="xx" /&gt; 等。 此外,在使用 Struts 2 时,需要注意乱码问题,解决方法是将编码方式设为“utf-8”,并在 web.xml 中配置 ...

    struts2 ognl的用法

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

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

    OGNL 表达式语言中使用了多种符号,包括 #、% 和 $ 符号。# 符号用于访问非根对象属性、过滤和投影集合、构造 Map 和 List 等。% 符号用于计算 OGNL 表达式的值。$ 符号用于在国际化资源文件中引用 OGNL 表达式和在 ...

    STRUTS2获得作用域、参数响应对象及三种符号说明

    ### STRUTS2获得作用域、参数响应对象及三种符号说明 #### 一、概述 在Struts2框架中,为了更好地管理Web应用程序中的请求、会话和应用范围的数据,Struts2提供了一系列的工具和机制。这包括了对`RequestMap`、`...

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

    本案例提供ognl使用详解,测试通过,只需解压放入自己WEB项目中,执行struts_ognl包内java文件即可(未提供jia包,若需要可以联系留言发至邮箱),若测试不好可以联系本人提供指导. ...主要是#、%和$这三个符号的使用;

    struts2综合复习习题

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

    struts2学习心得

    2. Struts2不需要注意线程同步的问题,而Struts1则面临这个问题,因为Struts1对action创建的时候只创建一次,当多个用户同时访问这个action时,则必须出现这个同步的问题。而对Struts2来说,需要action时都要重新new...

    struts2框架面试题及答案02

    在Struts2中,每个Action实例都有一个与之关联的ValueStack对象,该对象贯穿整个Action的生命周期。ValueStack不仅包含了Action对象本身,还可能包含其他辅助对象或数据,比如表单数据、验证错误等。 #### 获取...

    OGNL符号的使用

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

    struts2中文乱码

    本篇文章将详细介绍Struts2中出现中文乱码的原因及解决方案,帮助开发者更好地理解和解决这一问题。 #### 二、Struts2中文乱码问题概述 在Struts2应用中,当处理包含中文字符的数据时,可能会遇到乱码的问题。这种...

Global site tag (gtag.js) - Google Analytics