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。在输入框中输入姓名和密码,点击注册,在控制台输出如下内容表示封装成功: