封装表单数据到集合

2018-07-15  本文已影响41人  tingshuo123

封装表单数据到集合

第一步:在实体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>
上一篇 下一篇

猜你喜欢

热点阅读