EL表达式应用于JSP中,其格式是 ${表达式}。
OGNL表达式应用于Strtus2中(Struts2的自定义标签中、struts.xml...), 应用于Struts2的自定义标签的属性值中 %{表达式},在 struts.xml中 使用${表达式}方式,自定义标签的属性值中使用%,struts.xml中 使用$符号,原因是在JSP中使用$符号与EL相冲突,
语法:
%{name}取值栈中的值
%{#name}取值栈中Map中的值
%{#user.name}取值栈中Map中的值
#{'k':'v', 'k2':'v2'}定义一个Map
{'e1', 'e2'}定义一个List
%{ #{'k':'v', 'k2':'v2'} }Struts2的自定义标签的属性值中 定义一个Map
注意:在Struts2自定义标签的属性值中 ,有的标签需要使用%符号,也有的不需要,具体看实践操作,但如果都加上%符号,也不会出错。但有一些值中需要特殊指定需要计算OGNL表达式的地方,如链接中,不使用%符号的地方则不需要计算OGNL:
<s:a action="userAction_delete?id=%{id}" onclick="return delConfirm()">删除</s:a>
<s:a action="userAction_editUI?id=%{id}">修改</s:a>
相关推荐
这个“struts2-OGNL表达式测试”可能是一个测试项目或代码示例,旨在演示如何在Struts2应用中使用OGNL表达式。 OGNL是Struts2的核心组件之一,它允许开发者通过简单的字符串表达式来获取或设置对象的属性。这使得视...
本文将深入探讨如何在Struts2中有效地使用OGNL表达式。 首先,OGNL是Struts2的核心组成部分,它允许开发者在Action类和JSP页面之间灵活地传递和访问数据。在Action类中,你可以设置属性,然后在JSP页面上通过OGNL...
在Struts2框架中,OGNL表达式被广泛应用于视图层,比如在JSP页面中用来获取数据。OGNL表达式的语法简洁明了,例如: - **直接调用方法**:`xxx.sayHello()`。 - **访问静态方法和常量**:`@java.lang.String@format...
当用户提交数据时,OGNL表达式会将数据保存到栈顶的对象中。完成业务逻辑后,栈顶的对象可以通过OGNL表达式获取并展示结果。 以下是一个简单的示例,演示了如何使用`OgnlValueStack`: ```java // 创建Action对象 ...
- **$**:在JSP页面中表示EL表达式的开头,但在Struts2中通常不直接使用,而是通过#符号配合使用。 #### 五、示例代码详解 为了更好地理解OGNL表达式的使用,我们来看一个具体的示例。假设我们在开发一个简单的Web...
Struts2的值栈(Value Stack)是一个重要的概念,它用于存储Action中的数据,并且在JSP页面中通过OGNL表达式访问。值栈采用栈的形式组织数据,因此可以按照先进后出的原则对数据进行存取。在ActionContext中可以获取...
在Struts2中,OGNL表达式通常与Struts标签结合使用,如`s:property`标签,用于显示对象的属性值。例如,`<s:property value="name"/>`将显示栈顶对象的"name"属性值。栈顶对象是指在ValueStack(值栈)中位于最顶层...
- `$`:用于标识EL表达式,同时在Struts2配置中使用OGNL表达式时也会用到。 - `%`:用于将OGNL表达式转换为普通字符串或者将普通字符串转换为OGNL表达式。 - `#`:用于获取`ActionContext`中的数据或在OGNL表达式中...
在Struts2框架中,OGNL作为默认的数据绑定和表达式语言,用于在Action类的属性与视图层(如JSP)之间传递数据。 2. OGNL的基本语法: OGNL支持多种操作,包括访问对象属性、调用方法、数组和集合操作、算术运算等...
2. 视图渲染:在JSP页面中,我们可以通过OGNL表达式来访问Action对象的属性,动态地生成HTML内容,增强了页面的灵活性。 3. 动态方法调用:OGNL支持动态方法调用,允许开发者根据运行时的条件选择调用哪个方法,增加...
OGNL表达式语言: 相对EL表达式,它提供了平时我们需要的一些功能,如: ? 支持对象的方法调用 ,如 xxx.sayHello(); ? 支持类静态方法调用和值的访问,表达式的格式为@[类全名]@[方法名|值名],例如:@java....
- 如果某些Struts2标签不支持OGNL表达式,可以通过`%{}`包裹OGNL表达式,使它们能够识别并执行。 8. **Struts2标签与OGNL**: - `<s:set>`标签常用来设置值栈中的变量。 - `<s:iterator>`将当前迭代对象置于栈顶...
OGNL是Struts2的核心特性之一,Struts2使用OGNL来替代原先的EL表达式语言。Struts2将OGNL作为一个库集成到项目中,这使得Struts2在处理表单字段(如text field、hidden)方面更加灵活。与Struts1.x中的form bean相比...
在Struts2中,OGNL的主要作用是处理Action对象与视图之间的数据交换。例如,我们可以直接在表单中使用`user.username`来传递Action中的user对象的username属性,或者在`s:property`标签中用`user.username`来显示...
Struts2的一个关键特性就是它可以对Action携带的数据进行读写访问,例如在前面我们在表单中使用user.username指定数据传递给Action的user对象的username属性,在元素中使用user.username来获取用户的名字,这是通过...
2. **EL表达式与OGNL的混合**:在JSP中,EL表达式和OGNL可以混合使用,但EL表达式仅限于页面作用域,而OGNL可以访问更广泛的上下文。 3. **动态方法调用**:OGNL允许动态调用对象的方法,这对于处理不确定方法名的...
OGNL是Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言(Expression Language,简称为EL),通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,...
在Struts2框架中,OGNL(Object-Graph Navigation Language)和EL(Expression Language)都是用于数据绑定和表达式处理的重要工具,它们在处理视图层与模型层的数据交互方面发挥着关键作用。理解这两者的差异有助于...
ognl-3.0.jar:对象图导航语言(Object Graph Navigation Language),它是一种功能强大的表达式语言(Expression Language,简称为EL),通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,...