OGNL是Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言(Expression Language,简称为EL),通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能。它使用相同的表达式去存取对象的属性。
 
 
以下是一个例子,关于使用ognl读取不同范围的数据。这里没有任何的实体类,只在页面上存放/读取数据。
 
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  </head>
  
  <body>
    <s:set name="age" value="10" scope="request" />
    <s:set name="uname" value="速度" scope="session" />
    <!-- 以上set解说:value这么写的意思是将'速度'这个字符串赋值给uname,如果去掉单引号则表示把’速度‘这个变量的值赋值给uname -->
    <s:set name="sex" value="5" scope="application" />
    
    Request 作用域中age的值:<s:property value="#request.age"/><br/>
    Session 作用域中uname的值:<s:property value="#session.uname"/><br/>
    Application 作用域中sex的值:<s:property value="#application.sex" /><br/>
          使用attr 对象获取Application 作用域中的 sex 的值:
          <s:property value="#attr.sex"/><br/>
    ===============================================================
    <s:set name="name1" value="China" /><br/>
    <s:set name="name2" value="'China'" /><br/>
          变量 name1:<s:property value="#name1"/><br/>
          变量 name2:<s:property value="#name2"/><br/>
          使用request 对象获取变量 name2:<s:property value="#request.name2" /><br/>
  </body>
</html>