struts2框架详解

"map对象.key" key不能是纯数字内容。
"map对象['key']" key可以数字或者字符串。

  • Ognl从context区域获取数据
    重点: context区域是一个map结构
    · key是字符串、value对象类型
    语法: Ognl表达式: "#key" context中map的value
    测试方法: Ognl.getValue("ognl表达式",放入context区的map,root对象);

6).OGNL表达式-值栈(ValueStack)、Struts2值栈的使用+Struts2标签库[重点]

(1)值栈 ValueStack(类名)

作用:
封装ognl的root和context
使用Ognl表达式访问值栈内部root区中的对象,context中map的key对应的value
值栈相关api:

  • 获得值栈对象
    ValueStack vs = ActionContext.getContext().getValueStack();
  • 获得root(栈)
    CompoundRoot root = vs.getRoot();
  • 向root中存入对象
    root.push(作为root对象);
  • 获得context
    Map<String,Object> context = vs.getContext();
  • 如果想context中存入数据
    context.put("key",值);
  • 值栈对象提供方法 vs.findValue("ognl表达式"), 使用ognl获得值栈中的数据。
    获取root区属性值: vs.findValue(“对象属性”);
    获取ContextMap区value: vs.findValue(“#key”);

(2)Struts2值栈的使用+Struts2标签库[重点]

Struts2对值栈的管理

①值栈:

Context区(数据结构 Map)[重点]
"request" RequestMap(相当于HttpServletRequest作用域)
"session" SessionMap(相当于HttpSession作用域)
"application" ApplicationMap(相当于ServletContext作用域)

Root区(数据结构 栈 Stack)
将当前的Action对象放在root区栈顶。

②struts2标签库:

使用:
a.引入标签库:<%@taglib uri="/struts-tags" prefix="s" %>
b.使用property标签:<s:property value="ognl表达式"></s:property>
作用:
a.执行ognl获得数据
b.将结果展示给浏览器

总结:

a. 向RequestMap中存入值
Map<String,Object> requestMap = (...)vs.getContext().get("request");
requestMap.put("名字key",值);

猜你喜欢

转载自www.cnblogs.com/linanana/p/12552665.html