美文网首页
封装表单数据到集合

封装表单数据到集合

作者: tingshuo123 | 来源:发表于2018-07-15 11:53 被阅读41次

    封装表单数据到集合

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

    相关文章

      网友评论

          本文标题:封装表单数据到集合

          本文链接:https://www.haomeiwen.com/subject/pcqppftx.html