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
相关推荐
为了使EL表达式能够访问`ValueStack`中的数据,Struts2在`HttpServletRequest`的基础上封装了一个类——`StrutsRequestWrapper`。这个类重写了`getAttribute_r`方法,使其能够在没有找到相应属性时,尝试从`...
这样,数据的保存和获取都可以通过统一的OGNL表达式完成。 **总结** 表达式语言EL和OGNL提供了一种高效且灵活的方式来操作Java对象,特别是在Web开发中。OGNL的引入简化了视图层与模型层之间的数据交互,使得...
在Struts2中,OGNL表达式通常与Struts标签结合使用,如`s:property`标签,用于显示对象的属性值。例如,`<s:property value="name"/>`将显示栈顶对象的"name"属性值。栈顶对象是指在ValueStack(值栈)中位于最顶层...
- **Struts1**: 支持JSTL标签库以及EL表达式。但是,相比于Struts2,其功能较为有限。 - **Struts2**: 支持JSTL的同时,引入了更强大的表达式语言——OGNL(Object Graph Navigation Language)。OGNL提供了一种简洁...
- **Struts2**:支持OGNL,这是一种更强大和灵活的表达式语言,提供了更全面的对象图遍历功能。 7. **值绑定到页面**: - **Struts1**:使用JSP标准机制将对象绑定到视图,需要显式绑定。 - **Struts2**:采用...
2. **使用EL表达式获取ValueStack中的数据**:通过EL表达式的搜索机制,可以在未找到相应域对象的值时从`ValueStack`中查找所需的值。 #### 四、Struts2中EL表达式的使用 在Struts2框架中,EL表达式的搜索顺序非常...
使用OGNL时,通常配合Struts2的标签,比如`s:property`,通过值栈来访问和显示数据。 3. **EL与值栈的区别**: - Expression Language(EL)虽然也能访问值栈,但它只能从栈顶开始查找,而OGNL可以更灵活地遍历...
在Struts2中,OGNL被用来作为视图层和控制器之间的数据绑定工具,使得数据传输更加简洁高效。 二、OGNL在Struts2中的作用 1. 表单数据绑定:在Struts2中,用户提交的表单数据可以直接通过OGNL绑定到Action类的属性...
- **Struts2**:引入ValueStack技术,允许taglib访问值栈中的值,无需在视图中直接绑定对象,提高了复用性和灵活性。 8. **类型转换**: - **Struts1**:使用Commons-Beanutils进行类型转换,转换器不可配置,每...
Struts1和Struts2是两个非常著名的Java Web框架,它们在处理MVC(Model-View-Controller)架构方面有着显著的区别。以下是关于这两个框架差异的详细解释: 1. **Action类**: - **Struts1**:要求Action类继承自一...
- **Struts2**: 采用“ValueStack”技术,允许标签库访问值而无需显式绑定视图与对象。这种策略使得视图可以重用,即使它们引用的是不同类型的属性。 #### 8. 类型转换的能力 - **Struts1**: Struts1通常将`...
- **Struts 2**:使用更强大的OGNL(Object Graph Notation Language)表达式语言,支持复杂的数据结构操作,如遍历集合、获取嵌套属性等,大大提高了数据访问的灵活性和便利性。 #### 7. 绑定值到视图的对比 - **...
- **Struts2**:除了支持JSTL外,还引入了强大的OGNL表达式语言,这使得开发者可以在页面上轻松访问Action中的数据和执行方法。 #### 五、绑定值到页面(View) - **Struts1**:通常使用标准JSP标签来展示数据。 ...
- **Struts2**则使用了ValueStack来存储Action对象和视图数据,这种机制允许在不同的页面之间传递数据,从而实现了更加灵活的页面导航。 #### 数据类型转换 - **Struts1**使用ActionForm中的方法来转换表单提交的...
通过深入学习OGNL的源码,开发者不仅可以优化Struts2应用,还能更好地理解和利用其他使用OGNL的框架,如Spring EL(Spring Expression Language)。同时,这也有助于提升对Java反射机制、动态语言特性的理解,以及...
1、 ValueStack其实就是一个放置Java对象的堆栈而已,唯一特别的是可以使用EL来获得值堆栈中对象属性的数据,并可以为值堆栈的对象属性赋值。 2、 EL,全称Express Language,即表达式语言。不要被语言吓倒,它是...
在Struts2中,OGNL主要用作默认的表示层语言,它使得在Action、值栈和视图之间的数据交换变得简单。以下是一些OGNL的功能: - **表达式解析**:如`user.name`,可以方便地访问对象的属性。 - **方法调用**:允许...
- **OGNL (Object-Graph Navigation Language)**:用于在Action和视图之间交换数据,比Struts 1中的EL更强大。 4. **标签库** - **Struts2的标签库**:提供了一系列与Struts 1类似的标签,同时支持更多功能和更...