美文网首页
从值栈中获取数据

从值栈中获取数据

作者: 小漫画ing | 来源:发表于2018-06-07 20:28 被阅读0次

    1、使用struts2的标签+ognl表达式获取值栈数据
    (1)<s:property value = "ognl表达式"/>

    获取字符串

    (1)首先我们先给list里面放一个数据,然后再在我们页面显示出来,接下来,我们就放数据:

    package com.manman.Valuestack;
    
    import com.opensymphony.xwork2.ActionSupport;
    
    public class Valuestack extends ActionSupport {
        private String username;
        
        public String getUsername() {
            return username;
        }
    
        public String execute() throws Exception {
            username="itcast";
            return "success";
        }
    }
    
    

    配置:

    <action name="ValueDemo" class="com.manman.Valuestack.Valuestack">
                <result name="success">/value.jsp</result>
            </action>
    

    现在我从jsp页面获取一下值:

     <s:property value="username"/>
    

    使用这个标签就可以获取到他的值。它通过username找到他的getusername,然后根据返回值,找到username的值。

    获取对象

    既然想获取值栈中的对象,那就得先给里面放一个对象
    (1)先给里面存一个对象:

    package com.manman.Object;
    
    import com.manman.cm.User;
    import com.opensymphony.xwork2.ActionSupport;
    
    public class ObjectDemo extends ActionSupport{
        private User user = new User();
        
        public User getUser() {
            return user;
        }
    
        @Override
        public String execute() throws Exception {
        
            user.setUsername("Alisa");
            user.setPassword("1607");
            user.setAddress("国际");
            return SUCCESS;
        }
    }
    
    

    然后我们来配置xml:

    <action name="ObjectDemo" class="com.manman.Object.ObjectDemo">
               <result name="success">/value.jsp</result>
           </action>
    

    存进了对象,现在来在jsp页面通过标签获取:

    username:<s:property value="user.username"/><br><br>
    password:<s:property value="user.password"/><br><br>
    address:<s:property value="user.address"/><br><br>
    

    我们可以通过上面的获取到对象,结果如下:


    image.png

    获取list集合

    第一种方式:跟之前一样,先要想list里面放入值

    package com.manman.List;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import com.manman.cm.User;
    import com.opensymphony.xwork2.ActionSupport;
    
    public class ListDemo extends ActionSupport {
        private List<User> list =  new ArrayList<User>();
        
        public List<User> getList() {
            return list;
        }
        @Override
        public String execute() throws Exception {
            //3向list中设置值
            User user1 = new User();
            user1.setUsername("doudou");
            user1 .setPassword("520");
            user1.setAddress("zhang");
            User user2 = new User();
            user2.setUsername("Alisa");
            user2.setPassword("222");
            user2.setAddress("xu");
            list.add(user1);
            list.add(user2);
            
            return SUCCESS;
        }
    }
    
    

    然后我们同之前一样,配置xml:

    <action name="ListDemo" class="com.manman.List.ListDemo">
             <result name="success">/value.jsp</result>
         </action>
    

    数据存放好了以后,接下来就是获取list集合中的值:

     <!-- 使用strut2标签类似jstl的foreach标签 -->
       <s:iterator value="list">
       <s:property value="username"/>
       <s:property value="password"/>
       <s:property value="address"/>
       </s:iterator>
    

    iterator:迭代器,可以循环获取。
    因为我们存进值栈中的值是list集合,所以前面的value是list。好了,来看运行结果:


    image.png

    相关文章

      网友评论

          本文标题:从值栈中获取数据

          本文链接:https://www.haomeiwen.com/subject/ywewsftx.html