封装表单数据到集合
第一步:在实体Bean中添加Map集合,并提供 get、set方法
第二步:Action 继承 ModelDriven接口,实现 getModel 方法
第三部:在表单中写表达式
封装表单数据到Map集合
具体代码
页面
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
<!-- 客户端发起的请求,写相对于项目的绝对路径 -->
<form action="/Struts2_02/login.action" method="post">
<input type="text" name="account" /> <br /> <input type="password"
name="pwd" /> <br />
<label><input name="map.apple"type="checkbox" value="apple" />苹果
</label> <label><input name="map.peach" type="checkbox" value="peach" />桃子
</label> <label><input name="map.banana"type="checkbox" value="banana" />香蕉
</label> <label><input name="map.pear"type="checkbox" value="pear" />梨 </label>
<button type="submit">登录</button>
</form>
</body>
</html>
name 属性中的 map,是实体Bean中的Map集合的属性名,map.apple 表示以 apple 为键把表单的对应的值存入 map 中。
实体Bean
package com.project.bean;
import java.util.List;
import java.util.Map;
public class UserBean {
private String account;
private String pwd;
// private Map<String, String> map;
private Map<String, String> map;
// public List<String> getList() {
// return list;
// }
//
// public void setList(List<String> list) {
// this.list = list;
// }
public Map<String, String> getMap() {
return map;
}
public void setMap(Map<String, String> map) {
this.map = map;
}
@Override
public String toString() {
return "UserBean [account=" + account + ", pwd=" + pwd + ", list=" + list + ", map=" + map + "]";
}
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public List<String> getFruit() {
return list;
}
public void setFruit(List<String> list) {
this.list = list;
}
}
Action
package com.project.actions;
import com.opensymphony.xwork2.ModelDriven;
import com.project.bean.UserBean;
public class LoginAction implements ModelDriven<UserBean> {
UserBean user = new UserBean();
@Override
public UserBean getModel() {
return user;
}
public String execute() {
System.out.println(user);
return "success";
}
}
结果页面
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
${map} <br />
${map.apple} <br />
${map.pear} <br />
${map.banana} <br />
${map.peach} <br />
</body>
</html>
用 el 表达式取值。
封装表单数据到List集合
具体代码
页面
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
<!-- 客户端发起的请求,写相对于项目的绝对路径 -->
<form action="/Struts2_02/login.action" method="post">
<input type="text" name="account" /> <br /> <input type="password"
name="pwd" /> <br /> <label><input name="list[0]"
type="checkbox" value="apple" />苹果 </label> <label><input
name="list[1]" type="checkbox" value="peach" />桃子 </label> <label><input
name="list[2]" type="checkbox" value="banana" />香蕉 </label> <label><input
name="list[3]" type="checkbox" value="pear" />梨 </label>
<button type="submit">登录</button>
</form>
</body>
</html>
List集合,通过下标指定
实体Bean
package com.project.bean;
import java.util.List;
import java.util.Map;
public class UserBean {
private String account;
private String pwd;
private List<String> list;
private Map<String, String> map;
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public List<String> getList() {
return list;
}
public void setList(List<String> list) {
this.list = list;
}
public Map<String, String> getMap() {
return map;
}
public void setMap(Map<String, String> map) {
this.map = map;
}
@Override
public String toString() {
return "UserBean [account=" + account + ", pwd=" + pwd + ", list=" + list + ", map=" + map + "]";
}
}
Action
package com.project.actions;
import com.opensymphony.xwork2.ModelDriven;
import com.project.bean.UserBean;
public class LoginAction implements ModelDriven<UserBean> {
UserBean user = new UserBean();
@Override
public UserBean getModel() {
return user;
}
public String execute() {
System.out.println(user);
return "success";
}
}
结果页面
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
${list} <br />
${list[0]} <br />
${list[1]} <br />
${list[2]} <br />
${list[3]} <br />
</body>
</html>
网友评论