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",值);
本文来自博客园,作者:与乐i,转载请注明原文链接:https://www.cnblogs.com/linanana/p/12552665.html