值栈详解

来源:互联网 发布:大黄蜂爱国者数据 编辑:程序博客网 时间:2024/05/22 02:28

  不理解的话可以看struts源码

                                   值栈


      el表达式 与jstl标签结合
     
      ognl表达式与struts标签结合
      <property value="'gagg'.length()"/>


      servlet 和action 区别


      struts2本身存在一种存储机制 类似于域对象  是值栈 能取值存值
     
      在action中把数据存储到值栈中,在页面中获取到页面数据
      请求一个action,都会有个值栈对象


      获取值栈对象方法
    
        valuestack stack= actioncontext.getcontext.getvaluestack();
      值栈的内部机构
       
       第一部分 root list 
       第二部分 context map


      向值栈中放数据的三种方式
        第一种方法
          valuestack stack= actioncontext.getcontext.getvaluestack();
             stack.set("list",list);
        第二种方法


          valuestack stack= actioncontext.getcontext.getvaluestack();
             stack.push("list");
        第三种方法
、          定义一个属性 生成get方法


            private String name;
            public String  getName(){
                return name;
             }
       
对比三种方法大多数用第三种方法
             因为在直接放在action里面,其他方法还要分配别的空间存值




       向值栈中放对象
        
            private User user
            public User getUser(){


              return user;


}
         public String  execute (){
      
            user=new User();
            user.setName("guozhong");
            user.setQQ("772969626");
}
       向值栈中放list集合
         
            private List<User> userList
            public List<User> getUser(){


              return user;


}
         public String  execute (){
      
            userList=new ArrayList<User>();
            User user=new User();
            user.setName("guozhong");
            user.setQQ("772969626");
            userList.add(user);
}
    
 从值栈中获取数据字符串
         <property value="name"/> 
 从值栈中获取对象
         <property value="user.getName"/> 
 从值栈中获取list
          <itrator value="list">
           
            <property value="name"/> 


          </itrator>
<itrator value="list" var="u">
           遍历list集合出来的user放到context里面,为了取值更快
            <property value="#u.name"/> 


          </itrator>
set和push如何在页面中获取数据


    set
    <property value="name"/> 
    push
    <property value="[0].top"/> 




# $ %区别
context 用#
struts表单标签用%
struts配置文件用$ ognl
el表达式$
<% %> <%=  %>
























      

原创粉丝点击