十九、利用OGNL获取ValueStack中:根栈和contextMap中的数据
- 利用OGNL获取ValueStack中:根栈和contextMap中的数据- 原则:OGNL表达式如果以#开头,访问的contextMap中的数据 - 如果不以#开头,是访问的根栈中的对象的属性(List集合) - 1、在动作类中 - public String execute() { - // 操作ValueStack - // 从当前线程中获取ActionContext对象 - ActionContext ac = ActionContext.getContext(); - // 获取值栈对象,它由两部分组成。第一部分:集合;第二部分:就是ActionContext中的那个Map - ValueStack vs = ac.getValueStack(); - // 向根栈的栈顶中放一个Map。如果Map存在,直接取出来用,不存在,则创建一个Map,把p=vsp塞进去 - vs.set("p", "vsp"); - // 往传统的三大域范围放东西 - // request - ServletActionContext.getRequest().setAttribute("p", "rp"); - // session - ServletActionContext.getRequest().getSession().setAttribute("p", "sp"); - // application - ServletActionContext.getServletContext().setAttribute("p", "AP"); - return SUCCESS; - } - 2、数据内存结构 ![]()  - 3、在JSP页面中 - <br/> ----显示根栈中的数据----<br/> - <!-- 从栈顶往下搜索Map的key或者是对象的属性 --> - <s:property value="p"/><br/> - <!--不是栈顶对象:从索引为0的元素开始砍出来之后的那个新集合 --> - <s:property value="[0]"/><br/> - <!--取栈顶的那个对象 --> - <s:property value="[0].top"/><br/> - <br/> ----显示contextMap中的数据----<br/> - <s:property value="#request.p"/> - <s:property value="#session.p"/> - <s:property value="#application.p"/> 
 
                     
                    
                 
                    
                
 
			 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号