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

struts2-OGNL表达式中的#、%和$

    博客分类:
  • ssh
 
阅读更多

 

OGNL表达式非常强大~其中#、%、$这三个符号在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′}” />

 

The value of key “foo1″ is <s:property value=”#foobar['foo1']” />

 

 

不使用%:<s:url value=”#foobar['foo1']” />

 

 

使用%:<s:url value=”%{#foobar['foo1']}” />

 

 

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语法的重要组成部分。下面将详细介绍这三个...

    struts2-OGNL表达式测试

    在Struts2中,OGNL表达式的用途广泛,包括但不限于以下几点: 1. **动作结果映射**:在struts.xml配置文件中,你可以使用OGNL来决定哪个动作方法将被调用,比如`${method}" /&gt;`,这里的`method`属性可以通过请求...

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

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

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

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

    Struts2深入学习----OGNL表达式原理

    其中,OGNL(Object-Graph Navigation Language)是Struts2中的核心表达式语言,用于数据绑定和表示层的数据操作。这篇深入学习的文章主要探讨了OGNL表达式的原理和使用。 首先,我们来理解一下OGNL是什么。OGNL是...

    struts2 中 OGNL表达式的使用

    struts2 中 OGNL表达式的使用struts2 中 OGNL表达式的使用

    Struts2 使用OGNL表达式

    以下是一些关于Struts2中OGNL表达式的关键知识点: 1. **基础语法**:OGNL表达式的格式通常为`object.property`或`object[index]`,用于访问对象的属性或数组/集合的元素。例如,`user.name`将获取名为`user`的对象...

    精通struts2的ognl表达式

    ### 精通Struts2中的OGNL表达式 在深入探讨Struts2框架的核心功能时,理解并熟练掌握OGNL(Object-Graph Navigation Language)表达式的应用是至关重要的一步。OGNL是一种强大的表达式语言,它允许开发者通过简洁、...

    struts2-xwork-ognl的源文件(jar包)

    XWork是Struts2的核心组件,负责处理Action的执行,而OGNL(Object-Graph Navigation Language)则是Struts2中的表达式语言,用于数据绑定和访问对象属性。这个压缩包包含了这三个关键组件的源代码,对于开发者来说,...

    Struts2 如何使用OGNL表达式(三十八)

    总结来说,Struts2中的OGNL表达式是连接模型和视图的关键工具,它提供了一种强大且灵活的数据访问和操作方式。通过熟练掌握OGNL,开发者可以更高效地构建和维护Struts2应用,同时要注意防止潜在的安全风险。在实际...

    struts2中ognl表达式的理解和用法

    在Struts2中,OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,用于获取和设置对象的属性。这篇博客将深入探讨OGNL表达式的理解和用法。 OGNL的全称是对象图导航语言,它的主要功能是在对象模型...

    struts2_OGNL表达式ActionContext及valuesStack

    首先,OGNL表达式是Struts2中不可或缺的一部分,它允许开发者以一种声明式的方式访问和修改对象的属性。比如,`myBean.getMyProperty()`这样的Java代码可以通过`#myBean.myProperty`的OGNL表达式在模板中实现。OGNL...

    ognl表达式 ognl表达式

    #### 五、Struts2中的OGNL表达式实现机制 为了使EL表达式能够访问`ValueStack`中的数据,Struts2在`HttpServletRequest`的基础上封装了一个类——`StrutsRequestWrapper`。这个类重写了`getAttribute_r`方法,使其...

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

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

    OGNL表达式

    - **#**:通常用于表示OGNL表达式,在Struts2中作为OGNL表达式的开头标记。 - **%**:用于指定JSP页面的编码格式,如`&lt;%@ page language="java" contentType="text/html;charset=utf-8" pageEncoding="utf-8" %&gt;`。 ...

    struts2 OGNL表达式

    在Struts2中,OGNL被用作默认的表达式语言,用于在Action类和JSP页面之间传递数据,以及在Action上下文中进行动态方法调用。 在Struts2的配置文件中,如struts.xml或struts.properties,你可以看到OGNL表达式的使用...

    Struts2的标签库及OGNL表达式语言

    本篇文章将详细探讨Struts2中的OGNL表达式语言以及标签库。 **OGNL(对象图导航语言)** OGNL是一种强大的表达式语言,它允许开发者通过简洁的语法来访问和操作对象的属性。在Struts2框架中,OGNL扮演着至关重要的...

    Struts2-OGNL.rar_ognl

    在Struts2中,OGNL(Object-Graph Navigation Language)扮演着核心角色,它是一种强大的表达式语言,用于在Action类和JSP页面之间交换数据。下面我们将深入探讨OGNL的基本概念、特性以及在Struts2中的应用。 1. ...

    struts2 ognl表达式

    在Struts2中,OGNL表达式可以嵌入到各种基本标签中,如`s:textfield`, `s:property`, `s:action`等,以实现动态的数据展示和交互。例如,`&lt;s:property value="%{#session.user.name}" /&gt;`会将session中user对象的...

    JS:ognl表达式

    - **框架集成**:许多 Java 框架,如 Struts2、Hibernate Validator 等,都集成了 OGNL 表达式用于数据绑定和验证。 - **模板引擎**:在模板引擎中使用 OGNL 表达式来动态渲染页面。 - **业务逻辑处理**:在复杂的...

Global site tag (gtag.js) - Google Analytics