从值栈中获取数据

2018-06-07  本文已影响0人  小漫画ing

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
上一篇 下一篇

猜你喜欢

热点阅读