如果需要一个集合元素的时候(例如List对象或者Map对象),可以使用OGNL中同集合相关的表达式。
使用如下代码直接生成一个List对象:
<s:set name="list" value="{'zhangming','xiaoi','liming'}" />
<s:iterator value="#list" id="n">
<s:property value="n"/><br>
</s:iterator>
生成一个Map对象:
<s:set name="foobar" value="#{'foo1':'bar1', 'foo2':'bar2'}" />
<s:iterator value="#foobar" >
<s:property value="key"/>=<s:property value="value"/><br>
</s:iterator>
Set标签用于将某个值放入指定范围。
scope:指定变量被放置的范围,该属性可以接受application、session、request、 page或action。如果没有设置该属性,则默认放置在OGNL Context中。
value:赋给变量的值.如果没有设置该属性,则将ValueStack栈顶的值赋给变量。
采用OGNL表达式判断对象是否存在于集合中
对于集合类型,OGNL表达式可以使用in和not in两个元素符号。其中,in表达式用来判断某个元素是否在指定的集合对象中;not in判断某个元素是否不在指定的集合对象中,如下所示。
in表达式:
<s:if test="'foo' in {'foo','bar'}">
在
</s:if>
<s:else>
不在
</s:else>
not in表达式:
<s:if test="'foo' not in {'foo','bar'}">
不在
</s:if>
<s:else>
在
</s:else>
相关推荐
### JS:ognl表达式详解 #### 一、OGNL表达式概述 OGNL (Object-Graph Navigation Language) 是一种强大的表达式语言,用于获取和设置 Java 对象的属性。它最初是由 John Rose 和 Luke Blanshard 开发,并被广泛...
5. **操作集合对象**:OGNL提供了强大的集合操作功能,使得处理列表、数组等数据结构变得非常简便。 #### 三、OGNL表达式的应用场景 在实际开发中,OGNL表达式主要应用于以下几个方面: - **页面展示**:在JSP...
本案例提供ognl使用详解,测试通过,只需解压放入自己WEB项目中,执行struts_ognl包内java文件即可(未提供jia... 5、操作集合对象 用法:OGNL是通常要结合Struts 2的标志一起使用。主要是#、%和$这三个符号的使用;
1. **基础语法**:OGNL表达式的格式通常为`object.property`或`object[index]`,用于访问对象的属性或数组/集合的元素。例如,`user.name`将获取名为`user`的对象的`name`属性。 2. **动态属性**:OGNL支持动态属性...
OGNL表达式的基本语法包括点号`.`操作符和索引`[]`操作符,用于访问对象的属性和数组/集合元素。例如,`person.name`会访问`person`对象的`name`属性,而`list[0]`则会获取`list`集合的第一个元素。 在Struts2中,...
总结来说,Struts2中的OGNL表达式是连接模型和视图的关键工具,它提供了一种强大且灵活的数据访问和操作方式。通过熟练掌握OGNL,开发者可以更高效地构建和维护Struts2应用,同时要注意防止潜在的安全风险。在实际...
值栈是一个LIFO(后进先出)的数据结构,顶部的对象称为“顶级动作”对象,可以通过OGNL表达式直接访问。 **OGNL的主要特性** 1. **动态类型**:OGNL支持动态类型,不需要预先声明变量的类型,可以自动推断。 2. ...
总的来说,这个案例将帮助我们理解如何在Struts2中使用OGNL表达式来实现数据的展示和操作,以及如何通过Struts2的标签库更好地利用OGNL的功能。通过学习和实践,开发者可以提高Web应用程序的可维护性和灵活性。
总结,"OGNL表达式2讲"是一个深入学习OGNL表达式的资源,涵盖了OGNL的基本语法、与标签的配合、集合操作、上下文访问以及安全性考虑。通过案例学习,有助于开发者更好地理解和应用OGNL在实际项目中的功能。记得下载...
本篇文章将详细探讨Struts2中的OGNL表达式语言以及标签库。 **OGNL(对象图导航语言)** OGNL是一种强大的表达式语言,它允许开发者通过简洁的语法来访问和操作对象的属性。在Struts2框架中,OGNL扮演着至关重要的...
Struts2 OGNL表达式是Java Web开发中一个重要的概念,它是一种强大的对象图形导航语言(Object-Graph Navigation Language)。在Struts2框架中,OGNL被广泛用于视图层,作为数据绑定的主要手段,使得开发者能够方便...
在“struts2-OGNL表达式测试”中,你可能会看到各种OGNL表达式的使用示例,比如访问和修改对象属性、动态调用方法、处理集合和执行条件判断等。通过这些测试,你可以更好地理解和掌握OGNL在实际开发中的运用,确保在...
这里的`${user.name}`就是一个OGNL表达式,它会查找Action上下文中的`user`对象,并返回其`name`属性的值。 OGNL的强大之处在于它支持丰富的语法,如链式访问、集合操作、动态方法调用等。例如,你可以直接访问嵌套...
OGNL表达式提供了简洁的语法来访问和操作对象图,支持对象方法的调用、集合的选择和过滤、字符串格式化、基本类型和运算符的操作。 在Struts2中,OGNL被用于处理各种对象,包括值栈(Value Stack)、请求、会话、...
攻击者可以通过构造恶意的OGNL表达式,执行未授权的操作。因此,在使用Struts2时,必须对用户输入进行严格的校验和过滤,避免暴露这种安全隐患。 五、优化与最佳实践 1. 避免在视图层使用过于复杂的OGNL表达式,以...
理解OGNL表达式的关键在于熟悉其语法和它如何与Java对象交互。OGNL支持点号`.`和方括号`[]`操作符来访问对象的属性和数组元素,以及调用方法。此外,OGNL还可以执行基本的数学运算、条件判断、集合操作等复杂逻辑。 ...
“$”符号在Struts2中主要用作OGNL表达式的起始标记,在模板文件(如JSP页面)中,它用于指示Struts2框架应该解析为OGNL表达式。 1. **模板文件中的应用**: - 示例:`reg.ageRange = $ {min} 到 $ {max}` - 解释...
1. **表达式语法**:OGNL表达式通常由对象名、点号和属性名组成,例如`user.name`,表示获取`user`对象的`name`属性。也可以通过索引访问集合元素,如`list[0]`。 2. **上下文(Context)**:在OGNL中,上下文包含...
struts2 OGNL表达式使用 OGNL(Object-Graph Navigation ...通过这些示例,我们可以看到OGNL表达式的强大功能,它可以访问和操作对象及其属性,静态方法和属性,Math类的属性,普通类的构造方法,以及容器中的元素。