每一年都奔走在自己热爱里

 
没有人是一座孤岛,总有谁爱着你

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",值);

posted @ 2020-03-23 15:53  与乐i  阅读(417)  评论(0编辑  收藏  举报
Live2D
// 生成目录索引列表 //侧边栏目录索引