OGNL对Struts2的值栈的操作方式
Struts2存取数据,通过值栈完成,OGNL是访问值栈数据的表达式语言,在Struts2中,使用OGNL表达式获取数据有三种方式:
- #号用法
- %号用法
- $号用法
#号的使用
用法一:
访问 OgnlContext的 Map栈中常用对象,包括web对象, 添加#进行访问。
用法二: 如果不加 # 会直接调用ValueStack搜索功能(findValue),先搜索root栈对象的属性,后搜索Map栈,加#直接搜索map栈。
用法三:用来构造集合
list:{‘value1’,’value2’}----new arraylist()
map:#{‘key1’ :’value1’,’key2’ :’value2’} ---new hashmap()
相当于map对象
%号的使用
%表达式的作用是,可以让字符串变成解析的,也可以让解析的表达式变成字符
$号的使用
$主要作用是在相关配置文件中引入OGNL表达式,让其在配置文件中也能解析OGNL表达式。(换句话说:$用于在配置文件中获取值栈的值用的。)
相关配置文件主要包括:struts.xml、国际化的文件(xxx.properties)、校验配置文件(xxx-validation.xml)。