向值栈获取List集合

时间:2022-10-21 19:45:31

-------------------siwuxie095

  

  

  

  

  

  

  

  

从值栈获取 List 集合

  

  

1、具体步骤

  

1)在Action 中向值栈放 List 集合

  

2)在JSP 页面中从值栈获取 List 集合

  

  

  

2、具体实现

  

1)编写实体类

  

User.java:

  

package com.siwuxie095.entity;

  

  

// User 实体类

public class User {

  

private String username;

private String password;

private String address;

 

public String getUsername() {

return username;

}

publicvoid setUsername(String username) {

this.username = username;

}

 

public String getPassword() {

return password;

}

publicvoid setPassword(String password) {

this.password = password;

}

 

public String getAddress() {

return address;

}

publicvoid setAddress(String address) {

this.address = address;

}

 

@Override

public String toString() {

return"User [username=" + username + ", password=" + password

+ ", address=" + address + "]";

}

 

}

  

  

  

2)编写Action

  

ListAction.java:

  

package com.siwuxie095.action;

  

import java.util.ArrayList;

import java.util.List;

  

import com.opensymphony.xwork2.ActionSupport;

import com.siwuxie095.entity.User;

  

public class ListAction extends ActionSupport {

  

/*

* (1) Action 中定义 List 集合对象

*

* 因为总归是要 new 的,所以就在这里创

* 建,而不是声明了

*/

private List<User> list=new ArrayList<User>();

 

/*

* (2) 提供 List 集合对象的 get 方法即可

*/

public List<User> getList() {

return list;

}

 

@Override

public String execute() throws Exception {

 

/*

* 如果上面仅仅是声明了List 集合对象,

* 那么就要在这里创建,即 new 出来

*/

 

/*

* (3) 在执行的方法中,向 List 集合对象中设置值

*/

User user1=new User();

user1.setUsername("小白");

user1.setPassword("8888");

user1.setAddress("中国");

 

User user2=new User();

user2.setUsername("小黑");

user2.setPassword("4444");

user2.setAddress("美国");

 

list.add(user1);

list.add(user2);

 

return SUCCESS;

}

  

}

  

  

  

3)配置Action

  

struts.xml:

  

<?xmlversion="1.0"encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC

"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"

"http://struts.apache.org/dtds/struts-2.3.dtd">

  

<struts>

 

<packagename="demo"extends="struts-default"namespace="/">

 

<actionname="list"class="com.siwuxie095.action.ListAction">

<resultname="success">/list.jsp</result>

</action>

 

</package>

  

</struts>

  

  

  

4)编写页面

  

从值栈获取List 集合的方式共有三种

  

1)方式一

  

list.jsp:

  

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

 

<!-- 引入 Struts2 标签库 -->

<%@ taglib uri="/struts-tags" prefix="s"%>

  

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<metahttp-equiv="Content-Type"content="text/html; charset=UTF-8">

<title>List</title>

</head>

<body>

  

<!-- 获取值栈中 List 集合的数据 -->

<s:propertyvalue="list[0].username"></s:property>

<s:propertyvalue="list[0].password"></s:property>

<s:propertyvalue="list[0].address"></s:property>

<br/>

<s:propertyvalue="list[1].username"></s:property>

<s:propertyvalue="list[1].password"></s:property>

<s:propertyvalue="list[1].address"></s:property>

 

</body>

</html>

  

  

  

2)方式二

  

list.jsp:

  

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

 

<!-- 引入 Struts2 标签库 -->

<%@ taglib uri="/struts-tags" prefix="s"%>

  

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<metahttp-equiv="Content-Type"content="text/html; charset=UTF-8">

<title>List</title>

</head>

<body>

  

<!-- 获取值栈中 List 集合的数据 -->

<s:iteratorvalue="list">

<!-- 遍历 List 集合,得到其中的每个 User 对象 -->

<s:propertyvalue="username"></s:property>

<s:propertyvalue="password"></s:property>

<s:propertyvalue="address"></s:property>

<br/>

</s:iterator>

 

 

 

</body>

</html>

  

  

  

3)方式三

  

list.jsp:

  

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

 

<!-- 引入 Struts2 标签库 -->

<%@ taglib uri="/struts-tags" prefix="s"%>

  

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<metahttp-equiv="Content-Type"content="text/html; charset=UTF-8">

<title>List</title>

</head>

<body>

  

<!-- 获取值栈中 List 集合的数据 -->

<s:iteratorvalue="list"var="user">

<!--

遍历 List 集合,得到其中的每个 User 对象

 

优化机制:把每次遍历出来的 User 对象,放

context 中,变成对象引用,再取出

 

在写 OGNL 表达式时,需要使用特殊符号 #

-->

<s:propertyvalue="#user.username"></s:property>

<s:propertyvalue="#user.password"></s:property>

<s:propertyvalue="#user.address"></s:property>

<br/>

</s:iterator>

 

 

 

</body>

</html>

  

  

  

5)访问路径

  

http://localhost:8080/工程名/list.action

  

  

  

  

  

  

  

【made by siwuxie095】