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

封装表单数据到集合

作者: 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>

相关文章

  • 封装表单数据到集合

    封装表单数据到集合 第一步:在实体Bean中添加Map集合,并提供 get、set方法 第二步:Action 继承...

  • 封装数据到list集合和map集合

    封装数据到List集合 第一步,在action声明List 第二步,生成List变量的set和get方法 第三步,...

  • struts2获取值封装到List和Map

    一、封装数据到List 1、实现步骤 在action声明List 生成List变量的set和get方法 在表单输入...

  • 2018-04-17

    Java集合 ★★★★★集合框架:用于存储数据的容器。 特点: 1:对象封装数据,对象多了也需要存储。集合用于存储...

  • Struts2学习 一 自定义类型转换器

    struts2中,使用Jsp提交表单数据时,struts2会自动将表单中的数据封装,并复制给对应Action中的属...

  • 3、表单

    表单:表单是搜集用户数据信息的各种表单元素的集合区域 作用:用于收取用户数据并向后台发送,前后交互的方式之一 应用...

  • Spark-为什么比MR快

    spark简介 将数据封装到rdd集合当中 调用集合当中的函数 处理数据类似mr 计算引擎,针对大规模数据计算引擎...

  • struts获取集合类型数据

    集合封装到list 集合封装到map

  • vue父子传参场景集锦(一)

    父传子数据,子修改数据,父不改 场景: 列表(父组件)点击,弹出表单并传递当前行数据到表单(子组件),表单使用双向...

  • Java学习总结之集合

    Java集合框架 Java中封装了许多常用的数据结构,称为集合框架,可以有效组织数据,提高程序性能。最初Java只...

网友评论

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

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