eclipse学习(第二章:初识ssh)——8.Struts2 值栈/OGNL
前言
我是通过这个网站学的。
https://www.w3cschool.cn/struts_2/struts_value_stack_ognl.html
值栈的定义
值栈是一组对象,按照提供的顺序存储以下这些对象:
序号 | 对象和说明 |
---|---|
1 | Temporary对象 实际中存在各种在页面执行期间创建的temporary对象。例如,JSP标签循环集合的当前迭代值。 |
2 | Model对象 如果在struts应用程序中使用Model对象,则当前Model对象放在值堆栈上的action之前。 |
3 | Action对象 这是指正在执行的当前action对象。 |
4 | 命名对象 这些对象包括#application,#session,#request,#attr和#parameters以及所引用的相应的servlet作用域。 |
值栈如何获取
值栈可以通过为JSP,Velocity或Freemarker提供的标签进行访问。我们将在单独的章节中学习到用于获取和设置struts2 值栈的各种标签。你可以在action中获取值栈对象,如下所示:
ActionContext.getContext().getValueStack()
值栈获取之后如何使用
一旦你有一个值栈对象,你可以使用以下方法来操纵该对象:
序号 | 值栈方法和说明 |
---|---|
1 | Object findValue(String expr) 通过在默认搜索顺序中对值栈评估所给定的表达式来查找值。 |
2 | CompoundRoot getRoot() 获取将对象推入值栈的CompoundRoot。 |
3 | Object peek() 获取值栈顶部的对象而不改变值栈。 |
4 | Object pop() 获取值栈顶部的对象,并将其从值栈中删除。 |
5 | void push(Object o) 将对象放在值栈的顶部。 |
6 | void set(String key,Object o) 使用给定的key在值栈上设置一个对象,使其可通过findValue(key,…)检索。 |
7 | void setDefaultType(Class defaultType) 设置在获取值时要转换的默认类型。 |
8 | void setValue(String expr,Object value) 尝试使用由默认搜索顺序给定的表达式在值栈的bean上设置属性。 |
9 | int size() 获取值栈中的对象数。 |
OGNL的定义
OGNL(Object-Graph Navigatio