Struts2中的数据流入,流出

1. 使用OGNL表达式来输出结果时,OGNL会默认选择输出ValueStack对象中的数据,但是用户也可以选择输出其它对象中的数据


2. OGNL与Action上下文
OGNL表达式指向ValueStack栈中
Action对象被放在叫做ValueStack的对象中
OGNL表达式可以根据一系列对象求值,ValueStack只是这些对象求值中的一个,默认就是ValueStack
当然OGNL可以用其他的对象来求值,更宽泛的一个就是ActionContext


3. 介绍ActionContext
ActionContext包含了框架的请求处理过程中可以访问的所有数据,包含内容从应用程序到会话作用域及应用程序作用域
所有的OGNL表达式都必须根据ActionContext包含的某个对象求值,默认情况下,OGNL表达式会选择ValueStack,但用户可以选择指定其他的对象

|----------------  application
|
|
|----------------  session
|
|
|    ValueStack对象【根对象】
context map |
|
|----------------  request
|
|
|----------------  attr
|
|
|----------------  parameters




4. 数据流入
在整个请求过程中,数据对象会保留在ValueStack中
<s:property/> 标签就是用户输出ValueStack对象中的值的,需要指定value输出的对象,如果没有指定,则默认输出栈顶的对象。类型为Object
        还可以指定default元素,指定默认指


5. 数据流出



6. 如果不是访问跟对象,那么在访问时,需要添加"#"前缀,这些对象都是Map对象

猜你喜欢

转载自loveeveryday.iteye.com/blog/1674068