原文链接:http://www.yiidian.com/struts2/struts2-ognl.html
1 OGNL简介
OGNL
的全称是对象图导航语言( Object-Graph Navigation Language),它是一种功能强大的开源表达式语言,使用这种表达式语言,可以通过某种表达式语法,存储Java对象的任意属性,调用Java 对象的方法,同时能够自动实现必要的类型转换。如果把表达式看作是一种带有语义的字符串,那么 OGNL 无疑成为了这个语义字符串于Java对象之间的沟通桥梁。
2 OGNL数据结构
OGNL表达式,操作的是一个叫OgnlContext
的对象。该对象包含两个属性:
- root:根对象,可以存入任何对象作为Root对象
- context:上下文对象,这是一个Map结构,可以往该Map存入任意key-value键值对
以上OgnlContext对象的两部分属性,我们都可以通过OGNL表达式进行数据存取。
3 OGNL表达式语法
Ognl表达式基本规则:
取root对象的值,只需要直接通过根对象属性即可
取context对象的值,必须通过指定的上下文容器中的#key.属性去取
3.1 环境准备
首先导入ognl包到项目
设计一个User类,用于存储数据
package com.yiidian.ognl;
/**
* @author 一点教程(yiidian.com)
*/
public class User {
private String name;
private Integer age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public User() {
super();
}
public User(String name, Integer age) {
super();