`
林奇峰
  • 浏览: 42292 次
  • 性别: Icon_minigender_1
  • 来自: 濮阳
社区版块
存档分类
最新评论

EL表达式和OGNL表达式-->Struts2数据传输的背后机制:ValueStack(值栈)

阅读更多

EL表达式:

用于jsp中(包括struts2的自定义标签中)

 格式:${expression}

注:expression才是EL表达式,${ }是格式,格式的目的只是为表明格式内部的expression是EL表达式

 

OGNL表达式:

用于struts2中(仅用于struts2的自定义标签中,struts.xml...)

格式:

 struts2的自定义标签中:%{expression}  

注:其实OGNL表达式也是EL表达式,本可以用${}的,只是为了和原来的EL表达式区分

 struts.xml中                 :${expression}

语法:

指的是expression的写法。

 

具体为什么这么写法请参考 http://blog.csdn.net/li_tengfei/article/details/6098134#t8

分享到:
评论

相关推荐

    ognl表达式 ognl表达式

    为了使EL表达式能够访问`ValueStack`中的数据,Struts2在`HttpServletRequest`的基础上封装了一个类——`StrutsRequestWrapper`。这个类重写了`getAttribute_r`方法,使其能够在没有找到相应属性时,尝试从`...

    表达式与言EL和OGNL

    这样,数据的保存和获取都可以通过统一的OGNL表达式完成。 **总结** 表达式语言EL和OGNL提供了一种高效且灵活的方式来操作Java对象,特别是在Web开发中。OGNL的引入简化了视图层与模型层之间的数据交互,使得...

    struts2标签和OGNL表达式

    在Struts2中,OGNL表达式通常与Struts标签结合使用,如`s:property`标签,用于显示对象的属性值。例如,`<s:property value="name"/>`将显示栈顶对象的"name"属性值。栈顶对象是指在ValueStack(值栈)中位于最顶层...

    struts1和struts2的区别

    - **Struts1**: 支持JSTL标签库以及EL表达式。但是,相比于Struts2,其功能较为有限。 - **Struts2**: 支持JSTL的同时,引入了更强大的表达式语言——OGNL(Object Graph Navigation Language)。OGNL提供了一种简洁...

    struts1和struts2区别

    - **Struts2**:支持OGNL,这是一种更强大和灵活的表达式语言,提供了更全面的对象图遍历功能。 7. **值绑定到页面**: - **Struts1**:使用JSP标准机制将对象绑定到视图,需要显式绑定。 - **Struts2**:采用...

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

    2. **使用EL表达式获取ValueStack中的数据**:通过EL表达式的搜索机制,可以在未找到相应域对象的值时从`ValueStack`中查找所需的值。 #### 四、Struts2中EL表达式的使用 在Struts2框架中,EL表达式的搜索顺序非常...

    struts2中的ognl

    使用OGNL时,通常配合Struts2的标签,比如`s:property`,通过值栈来访问和显示数据。 3. **EL与值栈的区别**: - Expression Language(EL)虽然也能访问值栈,但它只能从栈顶开始查找,而OGNL可以更灵活地遍历...

    struts2.0中的ognl

    在Struts2中,OGNL被用来作为视图层和控制器之间的数据绑定工具,使得数据传输更加简洁高效。 二、OGNL在Struts2中的作用 1. 表单数据绑定:在Struts2中,用户提交的表单数据可以直接通过OGNL绑定到Action类的属性...

    struts1与struct2的不同

    - **Struts2**:引入ValueStack技术,允许taglib访问值栈中的值,无需在视图中直接绑定对象,提高了复用性和灵活性。 8. **类型转换**: - **Struts1**:使用Commons-Beanutils进行类型转换,转换器不可配置,每...

    struts1与struts2的区别

    Struts1和Struts2是两个非常著名的Java Web框架,它们在处理MVC(Model-View-Controller)架构方面有着显著的区别。以下是关于这两个框架差异的详细解释: 1. **Action类**: - **Struts1**:要求Action类继承自一...

    转:struts1与struts2的区别

    - **Struts2**: 采用“ValueStack”技术,允许标签库访问值而无需显式绑定视图与对象。这种策略使得视图可以重用,即使它们引用的是不同类型的属性。 #### 8. 类型转换的能力 - **Struts1**: Struts1通常将`...

    Struts1与Struts2本质区别

    - **Struts 2**:使用更强大的OGNL(Object Graph Notation Language)表达式语言,支持复杂的数据结构操作,如遍历集合、获取嵌套属性等,大大提高了数据访问的灵活性和便利性。 #### 7. 绑定值到视图的对比 - **...

    Struts2与Struts1的对比

    - **Struts2**:除了支持JSTL外,还引入了强大的OGNL表达式语言,这使得开发者可以在页面上轻松访问Action中的数据和执行方法。 #### 五、绑定值到页面(View) - **Struts1**:通常使用标准JSP标签来展示数据。 ...

    Struts2和Struts1的区别,详细点,主要说说Struts2

    - **Struts2**则使用了ValueStack来存储Action对象和视图数据,这种机制允许在不同的页面之间传递数据,从而实现了更加灵活的页面导航。 #### 数据类型转换 - **Struts1**使用ActionForm中的方法来转换表单提交的...

    ognl的源码

    通过深入学习OGNL的源码,开发者不仅可以优化Struts2应用,还能更好地理解和利用其他使用OGNL的框架,如Spring EL(Spring Expression Language)。同时,这也有助于提升对Java反射机制、动态语言特性的理解,以及...

    Struts2中关于ValueStack的一些操作

    1、 ValueStack其实就是一个放置Java对象的堆栈而已,唯一特别的是可以使用EL来获得值堆栈中对象属性的数据,并可以为值堆栈的对象属性赋值。 2、 EL,全称Express Language,即表达式语言。不要被语言吓倒,它是...

    struts2开发必备的jar包

    在Struts2中,OGNL主要用作默认的表示层语言,它使得在Action、值栈和视图之间的数据交换变得简单。以下是一些OGNL的功能: - **表达式解析**:如`user.name`,可以方便地访问对象的属性。 - **方法调用**:允许...

    【struts1.x-2.0】-jar包大全

    - **OGNL (Object-Graph Navigation Language)**:用于在Action和视图之间交换数据,比Struts 1中的EL更强大。 4. **标签库** - **Struts2的标签库**:提供了一系列与Struts 1类似的标签,同时支持更多功能和更...

Global site tag (gtag.js) - Google Analytics