封装集合数据
注意lisi集合提供下标,map提供键
在实际的开发中,有些时候我们需要批量插入用户或者批量插入其他的对象,在 Action 中需要
接受到这多个 Action 中封装的对象,然后传递给业务层。
那么这个时候就需要将表单的数据封装到
集合中。一般我们通常使用的集合无非是List或者是Map集合。
下面就以这两种集合进行数据的封
装的示例演示。
封装到 List
动作类:
/**
* 封装集合数据:
* 它用的也是属性驱动
*
* @author Johnny.Chen
*/
public class Demo4Action extends ActionSupport {
private List<User> users;
public String demo4(){
System.out.println(users);
return SUCCESS;
}
public List<User> getUsers() {
return users;
}
public void setUsers(List<User> users) {
this.users = users;
}
}
jsp页面:
<%--表单 4:封装 List 集合数据 --%>
<form action="${pageContext.request.contextPath}/demo4.action" method="post">
用户名 1:<input type="text" name="users[0].name"/><br/>
年龄 1:<input type="text" name="users[0].age"/><br/>
用户名 2:<input type="text" name="users[1].name"/><br/>
年龄 2:<input type="text" name="users[1].age"/><br/>
用户名 3:<input type="text" name="users[2].name"/><br/>
年龄 3:<input type="text" name="users[2].age"/><br/>
<input type="submit" value="提交"/>
</form>
struts.xml:
<action name="demo4" class="cn.action.Demo4Action" method="demo4">
<result name="success">/success.jsp</result>
</action>
封装到 Map
动作类:
/**
* 封装集合数据:
* 它用的也是属性驱动
*
* @author Johnny.Chen
*/
public class Demo5Action extends ActionSupport {
private Map<String,User> users;
public String demo5(){
System.out.println(users);
return SUCCESS;
}
public Map<String, User> getUsers() {
return users;
}
public void setUsers(Map<String, User> users) {
this.users = users;
}
}
jsp页面:
<%--表单 5:封装 map 集合数据 --%>
<form action="${pageContext.request.contextPath}/demo5.action" method="post">
用户名 1:<input type="text" name="users['one'].name"/><br/>
年龄 1:<input type="text" name="users['one'].age"/><br/>
用户名 2:<input type="text" name="users['two'].name"/><br/>
年龄 2:<input type="text" name="users['two'].age"/><br/>
用户名 3:<input type="text" name="users['three'].name"/><br/>
年龄 3:<input type="text" name="users['three'].age"/><br/>
<input type="submit" value="提交"/>
</form>
struts.xml:
<action name="demo5" class="cn.action.Demo5Action" method="demo5">
<result name="success">/success.jsp</result>
</action>