struts2 - 7 struts2 封装请求参数到集合

124 篇文章 1 订阅
96 篇文章 0 订阅

有时可能需要将一些数据封装到集合中(List,Map),这就需要了将复杂数据封装到集合的技术:

具体见代码与注解。

 

struts.mxl

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>


    <package name="default" namespace="/" extends="struts-default">

		<!-- 全局result -->
        <global-results>
            <result name="success">/main.html</result>
        </global-results>
		<!-- 不写method直接执行action类中的execute方法 -->
		<action name="demoAction" class="web.action.ActionDemo1"/>
		
		<action name="userAction_*" class="web.action.UserAction" method="{1}">
			<result name="msg">/retMsg.jsp</result>
		</action>
		
		<!-- 演示属性驱动 -->
		<action name="FieldDrivenDemo" class="web.action.FieldDrivenDemo"/><!-- 默认方法 -->
		<action name="FieldDrivenDemo" class="web.action.FieldDrivenDemo" method="demo1"/><!-- 指定方法 -->

		
		<!-- 演示模型驱动 -->
		<action name="ModelDrivenDemo" class="web.action.ModelDrivenDemo" method="demo" />
		<action name="FieldDrivenDemo2" class="web.action.FieldDrivenDemo2" />
		
		<!-- 将数据封装到list中 -->
		<action name="CollectionActionDemo" class="web.action.CollectionActionDemo"/>
		<!-- 将数据封装到map中 -->
		<action name="CollectionActionDemo2" class="web.action.CollectionActionDemo2"/>
    </package>



</struts>

请求页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>login</title>
</head>
<body>

	<h3>将请求数据封装到list集合中</h3>
	<form action="${ pageContext.request.contextPath }/CollectionActionDemo"
		method="post">
		<h5>用户1</h5>
		姓名:<input type="text" name="userList[0].username" /><br /> 
		密码:<input type="password" name="userList[0].password" /><br /> 

		
		<h5>用户2</h5>
		姓名:<input type="text" name="userList[1].username" /><br /> 
		密码:<input type="password" name="userList[1].password" /><br /> 

		
		<h5>用户3</h5>
		姓名:<input type="text" name="userList[2].username" /><br /> 
		密码:<input type="password" name="userList[2].password" /><br /> 
		
		
		<input type="submit" value="提交" />
		
	</form>
	<br/>
	
	<h3>将请求数据封装到map集合中</h3>
	<form action="${ pageContext.request.contextPath }/CollectionActionDemo2"
		method="post">
		<h5>用户1</h5>
		姓名:<input type="text" name="map['user1'].username" /><br /> 
		密码:<input type="password" name="map['user1'].password" /><br /> 

		
		<h5>用户2</h5>
		姓名:<input type="text" name="map['user12'].username" /><br /> 
		密码:<input type="password" name="map['user12'].password" /><br /> 

		
		<h5>用户3</h5>
		姓名:<input type="text" name="map['user13'].username" /><br /> 
		密码:<input type="password" name="map['user13'].password" /><br /> 
		
		
		<input type="submit" value="提交" />
		
	</form>
	
</body>
</html>

 

封装到list的action类

package web.action;

import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Set;

import com.opensymphony.xwork2.ActionSupport;
import com.sun.javafx.collections.MappingChange.Map;

import domain.User;

public class CollectionActionDemo extends ActionSupport {

	/**
	 * 使用struts2框架将请求数据封装到集合中
	 * 一、list集合
	 * 	1.需要定义集合指定泛型,并提供get、set函数
	 * 	2.页面需要作相应的修改
	 * 		姓名:<input type="text" name="userList[0].username" /><br /> 
			密码:<input type="password" name="userList[0].password" /><br />
	 *
	 */
	private static final long serialVersionUID = -8465672731791860000L;
	
	//定义list集合指定泛型,并提供get、set函数
	private List<User> userList;
	public List<User> getUserList() {
		return userList;
	}
	public void setUserList(List<User> userList) {
		this.userList = userList;
	}
	
	//正常使用list	
	@Override
	public String execute() throws Exception {
		for (User user : userList) {
			System.out.println(user);
		}
		return NONE;
	}
	
}

 

封装到map的action类

package web.action;


import java.util.HashMap;
import java.util.Map;

import com.opensymphony.xwork2.ActionSupport;

import domain.User;

public class CollectionActionDemo2 extends ActionSupport {

	private static final long serialVersionUID = 6361656316275107452L;
	/**
	 * 使用struts2框架将请求数据封装到集合中
	 * 二、map集合
	 * 	1.需要定义集合指定泛型,并提供get、set函数
	 * 	2.页面需要作相应的修改
	 *
	 *
	 */
	
	
	//定义map集合指定泛型,并提供get、set函数
	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 {
		System.out.println(map);
		return NONE;
	}
	
}

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值