`

Struts 2中#、%和$符号的相应用途

阅读更多

#、%和$符号在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′:’bar1′, ‘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(Object-Graph Navigation Language)是默认表达式语言,用于访问和操作对象的属性。在OGNL表达式中,`#`、`%`和``$`符号扮演着不同的角色,它们是OGNL语法的重要组成部分。下面将详细介绍这三个...

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

    它在许多Java应用框架中得到了广泛应用,尤其是在Struts2中作为默认的表达式语言。OGNL中的`#`、`%`和`$`符号各有其独特的功能和应用场景,对于理解和熟练使用这些符号至关重要。 #### #符号的用途 1. **访问根...

    struts2.0标签$ # %的区别

    - **用途**:主要用于国际化资源文件和Struts配置文件中的属性引用。 - **示例**: ```xml ``` 其中,`&lt;s:text&gt;` 标签中的`name`属性使用`$`来引用国际化资源文件中的键。 ##### 2. # 取得ActionContext的值 ...

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

    “$”符号在Struts2中主要用作OGNL表达式的起始标记,在模板文件(如JSP页面)中,它用于指示Struts2框架应该解析为OGNL表达式。 1. **模板文件中的应用**: - 示例:`reg.ageRange = $ {min} 到 $ {max}` - 解释...

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

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

    % # $ 的区别 及用法

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

    struts2中#号的用法

    在Struts2中,`#`符号通常用于访问Ognl表达式中的变量。它支持访问不同的作用域,如当前页面、请求范围、会话范围以及应用程序范围。下面将分别介绍这些不同作用域的访问方式: 1. **当前页面**:当需要访问当前...

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

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

    #和$的区别

    - **访问上下文**: 在Struts2中,“#”主要用于访问OGNL上下文和Action上下文。它等同于`ActionContext.getContext()`。通过使用“#”,可以轻松访问到当前的HTTP请求参数、HttpServletRequest属性、HttpSession属性...

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

    - **访问非根对象属性**:在STRUTS2中,ActionContext是默认的根对象,但如果你需要访问像Session这样的非根对象,你需要使用`#`前缀。例如,`#session.msg`表示获取ActionContext的Session属性中的'msg'键的值,...

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

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

    第五章struts2的标签库.pdf

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

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

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

    struts1和struts2的区别

    - **Struts2**: Struts2中的Action更像是工厂模式下的产品,每个Action实例都是线程安全的。Struts2提供了ActionSupport基类来简化Action的实现。Action本身可以是任何实现了特定接口的Java对象,甚至是普通的POJO。...

    struts2 OGNL语言学习笔记

    在 Struts 2 中,OGNL 是默认的表达式语言,原因是它相对其它表达式语言具有多个优势,例如:支持对象方法调用、支持类静态的方法调用和值访问、支持赋值操作和表达式串联等。 在使用 OGNL 时,经常遇到的问题是 #...

    struts2用siftest判断属性和字符串相等时注意双引号和单引号的使用以及%$%#的使用.docx

    `#`符号在Struts2中表示访问堆栈上下文(比如请求、会话、应用上下文)。而`%{#}`是JSP 2.1规范中的新特性,用于从特定的域对象中直接访问属性。 对于其他标签,如`s:select`、`s:if`、`s:iterator`和`s:checkbox...

    struts2中文学习文档

    这些特性后来都被融入到了Struts2中,使得Struts2不仅继承了WebWork的优点,还在此基础上进行了改进和扩展,成为了更加强大和灵活的框架。 ### Struts2的关键特性 1. **拦截器机制**:这是Struts2的核心概念之一,...

    struts2 ognl的用法

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

    Struts2视频教程

    - **适用范围**:Struts2广泛应用于企业级Java Web项目的开发中,特别是那些需要处理大量用户交互和数据展示的应用。 #### 二、Struts2入门案例 - **Hello Struts2**:通过创建一个简单的“Hello World”示例,...

Global site tag (gtag.js) - Google Analytics