-------------------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】