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>
转载于:https://blog.51cto.com/huwenqi/1151121