本文共 634 字,大约阅读时间需要 2 分钟。
OGNL(Object-Graph Navigation Language,对象图导航语言)是一种强大的表达式语言,主要用于在Java应用中存取对象属性、调用方法、遍历对象图,并实现属性类型转换等功能。它的语法简洁,能够通过简单的表达式实现对复杂对象图的操作,广泛应用于Struts 2框架的标签库中。
OGNL的表达式计算依赖于OGNL上下文,通常由ognl.OgnlContext类表示。上下文包含一个根对象,可以通过属性名直接访问其属性值,若属性位于根对象之外,则需加上“#”前缀。
Struts 2的标签库主要使用OGNL表达式来访问ActionContext中的对象数据。例如:
默认情况下,ActionContext会被设置为OGNL上下文,值栈作为根对象放置到ActionContext中。
值栈是OGNL的核心,贯穿整个Action生命周期。它用于存储和查询对象,引用值栈中的对象无需“#”前缀。Struts 2会将当前Action实例放置在栈顶,因此引用Action属性时可以省略“#”。
通过put(key, value)方法存入ActionContext的数据需使用“#”前缀访问。
转载地址:http://ntsfk.baihongyu.com/