OGNL表达式:
xxx.say();
@java.lang.String@format('foo%s','bar')或@MyClass@URL
oghl有上下文概念,说白了就是一个map结构,实现了Map接口,Struts2的上下文
的实现是ActionContext;
STRUTS2中的OGNLContext实现者为actionContext 它有以下的
valuestack
parameter
ActionContext(map结构)----- request
session
application
attr
()
每个请求来后创建1 ActionContext,2ValueStack,3action 并把action放入
ValueStack中,所以action的实例可以被OGNL访问。
访问上下文中的对象:#request.userName或#request['userName']=====request.getAttribute("userName")
#session ...
访问跟对象ValueStack里面的对象的属性 可直接写
ValueStack的实现类是OgnlValueStack,在它里面有一个list类型的root变量就用它存放一组变量
在root中第一个对象叫栈顶对象(action)
Ognl表达式是配合Struts2标签用的
<s:propeety value="name"/>
通过el表达式(只可访问ValueStatic中的)可以访问root中的属性:${name}
例如:
Class Person{id,name}
Class Product{price,name}
root{new Person(1,诸葛),new Product(100,Mp4)}
直接写属性name<s:propeety value="name"/>
name找到的是第一个类的name,
price找到product的price,
ognl
最新推荐文章于 2024-09-14 16:26:17 发布