struts框架封装数据可以封装到集合中也可以封装到map中,该篇博客主要讲解将数据封装到map中。

1. 封装复杂类型的参数(集合类型 Collection 、Map接口等)
2. 需求:页面中有可能想批量添加一些数据,那么现在就可以使用上述的技术了。把数据封装到集合中

3. 把数据封装到Map中(双元素集合)
    * Map集合是键值对的形式,页面的写法
> <input type="text" name="map['one'].name" />
* Action中提供map集合,并且提供get和set方法
以map集合为例:
1.创建javaBean类User:
package com.huida.domain;

public class User {

    private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User [username=" + username + ", password=" + password + "]";
} }

2.创建Action类Regist5Action:action类的写法与数据封装中的属性封装类似:定义属性map,对map定义其set和get方法。

package com.huida.action1;

import java.util.Map;

import com.huida.domain.User;
import com.opensymphony.xwork2.ActionSupport; public class Regist5Action extends ActionSupport{ private Map<String, User> map; public Map<String, User> getMap() {
return map;
} public void setMap(Map<String, User> map) {
this.map = map;
}
@Override
public String execute() throws Exception { for(String str:map.keySet()){
User user=map.get(str);
System.out.println(str+"..."+user);
}
return NONE;
} }

3.在struts.xml中对action进行配置:

<package name="demo" namespace="/" extends="struts-default">
<action name="regist5Action" class="com.huida.action1.Regist5Action"></action>
</package>

4.书写表单:

这里需要注意的地方:

(1)表单input标签中name的值中集合的名字map应该与Regist5Action中定义的属性名相同。

(2)map[ ]方括号里面的内容可以随便写,但是同一条记录中的两个输入框要保持一致。这里面的one相当于map的键值。

<h3>数据封装到map集合中</h3>
<!-- 将数据封装到集合中,可以封装多条数据,所以我们在这里多写几个记录 -->
<form action="${ pageContext.request.contextPath }/regist5Action.action" method="post">
姓名<input type="text" name="map['one'].username"/><br/><!-- map[ ]这里面的内容随便写,但是同一条记录中的两个输入框要保持一致。这里面的one相当于定义map中 的String类型的值 -->
密码<input type="text" name="map['one'].password"/><br/>
姓名<input type="text" name="map['two'].username"/><br/>
密码<input type="text" name="map['two'].password"/><br/>
<input type="submit" value="注册"> </form>

启动服务器,运行表单index.jsp。在输入框中输入姓名和密码,点击注册,在控制台输出如下内容表示封装成功:

 

Struts2把数据封装到集合中之封装到map中的更多相关文章

  1. Struts2把数据封装到集合中之封装到Collection中

    数据封装到集合中,可以封装到集合中,也可以封装到Map中.该篇博客主要讲解数据封装到集合中的封装到Collection中. 1. 封装复杂类型的参数(集合类型 Collection .Map接口等) ...

  2. 对象属性封装到map中

    import java.beans.PropertyDescriptor; import java.lang.reflect.Method; import java.lang.reflect.Modi ...

  3. list中的对象或者map中的版本号排序 version排序

    经常会用到版本号排序,直接把他封装成一个工具用起来比较方便. List<A> aList = new ArrayList<>(); ...aList 赋值 ... Collec ...

  4. 3. 如何封装查询条件与查询结果到map中

    public Map<String, Object> queryOrderStatus(String orderNo) { // 查询到的结果与查询的条件一一对应,封装到map中! Str ...

  5. map集合修改其中元素 去除Map集合中所有具有相同值的元素 Properties长久保存的流操作 两种用map记录单词或字母个数的方法

    package com.swift.lianxi; import java.util.HashMap; import java.util.Iterator; import java.util.Map; ...

  6. Java集合——List,Set,Map总结笔记

    1. 集合 Collection 1.1 Java 集合框架 ​ ​ ​ ​ ​ ​ ​ ​ Java 集合框架位于 java.util 包中.Java 集合框架主要包括两种类型的容器,一种是集合(C ...

  7. 修改Map中确定key对应的value问题

    今天在码代码的时候出现一个没有预料的问题: 先看下面的代码: public static void main(String[] args) { String[] files=new String[]{ ...

  8. 十三 Struts2复杂类型的数据封装,List封装和Map封装

    在实际开发当中,有可能遇到批量向数据库中插入记录,需要在页面中将数据封装到集合中.类似页面表达式方法 List封装: 前端JSP: <%@ page language="java&qu ...

  9. 十一 三种Struts2的数据封装方式,封装页面传递的数据

    Struts2的数据封装:Struts2是一个web层框架,框架是软件的半成品.提供了数据封装的基本功能. 注:Struts2底层(核心过滤器里面的默认栈里面的拦截器,具体见struts-defaul ...

随机推荐

  1. oracle归档日志关闭和打开

    查询归档日志状态 方法一 SQL> archive log list; 方法二 SQL> select name,log_mode from V$database; 打开归档日志 orac ...

  2. ASP.NET HTTP 协议

    http是无状态的,不会记得“上个请求***”,所以哪怕是同一个页面中的js.css.jpg也都要重复的提交Accept-Language.Accept-Encoding.Cookie等. 一般情况下 ...

  3. Ubuntu网卡配置

    目录 1.查看所有可用网卡 2.编辑配置文件 3.添加可用网卡信息 4.重启网络服务 5.查看网卡信息 1.查看所有可用网卡 $ ifconfig -a # -a display all interf ...

  4. angularjs中安卓原生APP调用H5页面js函数,js写法应注意

    安卓原生app调用js方法,js方法应写在html下的script标签内,不能有任何function包裹,例如angular的controller层,这样APP也是获取不到的: 所以只有放在html中 ...

  5. python函数基础:调用内置函数&定义函数

    调用内置函数 有很多内置函数,在使用中需要积累.这里只举两个例子: 分别调用abs和数据类型转换,注意当入参类型错误时候会报错 ''' print('abs(-100)') abs(-100) pri ...

  6. IE 浏览器的兼容性列表设置

    打开 IE 浏览器 IE8 为例如:

  7. 求1到n,n个整数的全排列

    package com.dong.harder; public class AllArrays { public static void main(String[] args) { // TODO A ...

  8. scala spark 聚类

    import org.apache.spark.ml.clustering.KMeansimport org.apache.spark.ml.evaluation.ClusteringEvaluato ...

  9. hdu1753-大明A+B-(java大数)

    大明A+B Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  10. akka共享内存

    Akka共享内存 Akka中的共享内存是基于Actor模型的,Actor模型提倡的是:通过通讯来实现共享内存,而不是用共享内存来实现通讯,这点是跟Java解决共享内存最大的区别,举个例子: 在Java ...