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. 【Maven】项目打包-war包-Jar包[IDEA将项目打成war包]

    [Maven]项目打包-war包-Jar包[IDEA将项目打成war包] 2017年01月31日 00:21:06 阅读数:22912 标签: ideamaven发布博客插件 更多 个人分类: ❷ J ...

  2. http协议以及http1.0和http1.1的区别

    header响应头信息: HTTP/1.1 302 FOUND Content-Length: 0 Set-Cookie: sessionid=n3gozvqbjba1zckr7v0ccj6yn7v9 ...

  3. FMS Dev Guide学习笔记

    翻译一下其中或许对游戏开发有用的一个章节 一.开发交互式的媒体应用程序 1.共享对象(Shared objects)     ----关于共享对象     使用共享对象可以同步用户和存储数据.共享对象 ...

  4. http://www.cnblogs.com/wuyunfei/p/4277226.html

    http://www.cnblogs.com/wuyunfei/p/4277226.html

  5. struts2 优缺点

  6. rsync sersync搭建

    目标服务器 192.168.100.47 源服务器    192.168.100.46 目标服务器配置 [root@node01 nodejs]# cat /etc/rsyncd.conf #日志文件 ...

  7. CSS 颜色术语

    术语和概念在理科学习非常重要.CSS中有些关键的术语的. 对比度 对比度是指前景色和背景色之间的差距.当前景颜色和背景色之间的对比度较低时,文本就难以阅读.这对视觉障碍或色盲来说更严重. 透明度 透明 ...

  8. matlab stereo_gui立体标定

    http://www.vision.caltech.edu/bouguetj/calib_doc/index.html#examples 文档中举了几个例子,有关双目的是第5个, 这个例子展示了如何使 ...

  9. 解决SMARTFORMS文本编辑器不能打开

    在DEV打开SMARTFORMS文本编辑器时,出现如下错误 由于宏安全设置,无法找到宏或宏被禁用. 解决方法如下: 在DEV环境新建程序后输入如下代码执行即可. *&------------- ...

  10. 04_web基础(九)考核与评估