本文要实现的功能是给一张表单:

可以看到这样表格一共有四行,每一行代表一个员工(User),每一个员工有username和salary。我们要做的是把这四个员工信息装进一个List集合中。

那么怎么做呢?

List不就是一个数组吗?

我们这么考虑:

案例结构如下:

第一步编写首页面emp.jsp,代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>My JSP 'index.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"></head><body>
<form action="${pageContext.request.contextPath}/user/register.action"  method="post">
<!-- 尤其要注意这里的name="userList[0].usrname"这种写法,视屏的解释是这个userList[0]
相当于emp,把userList当做数组来处理,java中并没有List[0]这种写法,所以区别开,
顺便说一下这里的流程,当看到userList这个字段时自然会找到UserAction中的
public String deleteall(Model model,Bean bean)中的Bean的中userList
注入数据-->
姓名:<input type="text" name="userList[0].usrname" value="哈哈"/>
性别:<input type="text" name="userList[0].salary" value="100"/>
姓名:<input type="text" name="userList[1].usrname" value="哈哈2"/>
性别:<input type="text" name="userList[1].salary" value="100"/>
姓名:<input type="text" name="userList[2].usrname" value="哈哈3"/>
性别:<input type="text" name="userList[2].salary" value="100"/>
<tr><input type="submit" value="提交">
</tr></form></body>
</html>

第二步:编写web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"><display-name>SpringMvc_10day_self</display-name><!-- Spring提供了一个Filter专门用来解决Post提交中文的乱码问题 --><filter><filter-name>CharacterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param>
</filter><filter-mapping><filter-name>CharacterEncodingFilter </filter-name><url-pattern>/*</url-pattern></filter-mapping><servlet><!--这个名字可以随便取得,但是这个名字取了之后,以后在 WEB-INF下面创建SpirngMVC的配置文件是,命名必须以这个开头,所以这里取名叫做DispatcherServlet,那么之后的xml文件取名必须为DispatcherServlet-servlet.xml(一个字都不能差)--><servlet-name>DispatcherServlet</servlet-name><servlet-class> org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 通知DispatcherServlet去指定目录下找到springmvc.xml配置文件 --><!-- 注意这里的  <param-name>contextConfigLocation</param-name>一个字母都不能有错一旦有错就会去WEB-INF下面去找--><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>DispatcherServlet</servlet-name><url-pattern>*.action</url-pattern></servlet-mapping><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list>
</web-app>

第三步;编写spring.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.0.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-3.0.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"
>
<import resource="com/guigu/shen/Action9/springmvc_009.xml"/>
</beans>

第四步:编写springmvc_009.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.0.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-3.0.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"
><!-- 控制器(程序员)(必须配置) -->
<context:component-scan base-package="com.guigu.shen.Action9"/><!-- 基于注解的映射器(可选) 这个类和以前的xml方式的类不同,专门是注解用的--><bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/><!-- 基于注解的适配器(可选)这个类和以前的xml方式的类不同,专门是注解用的--><bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/><!-- 视图解析器(可选) 这个类和以前的xml方式的类一样--><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"></bean></beans>

第五步:编写控制器类UserAction.java

package com.guigu.shen.Action9;import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;import javax.servlet.http.HttpServletRequest;import org.omg.CORBA.PUBLIC_MEMBER;
import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.ServletRequestDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
/*** *
请求路径可以拆分为:根模块的名字+分模块的名字
就是相当于当访问http://127.0.0.1:8080:项目名/user/register时就会进入到
registerMethod方法。*/
@Controller
@RequestMapping(value="/user")//根模块的请求名字
public class UserAction {@RequestMapping(method=RequestMethod.POST,value="/register")//分模块的请求名字
/*用数组的方式去收集提交的参数(搜集复选框选中的数据)*/
/** * 这里为什么写Bean而不写其他的比如userList,因为我这里得到的是userlist,但是我对他进行* 一封装了,封装成了bean,所以我这里当然要写bean了,记住如果是封装的形式,这里写的是封装,要比* 要得到的那个大。* */
public String deleteall(Model model,Bean bean)
{for(Emp emp:bean.getUserList()){System.out.println(emp.getUsrname());System.out.print(emp.getSalary());}return "/jsp/success.jsp";
}}

结果:控制台输出:

哈哈
100.0哈哈2
100.0哈哈3
100.0

一切正常。

19SpringMvc_在业务控制方法中收集List集合中包含JavaBean参数相关推荐

  1. java List最大_在java中获取List集合中最大的日期时间操作

    取list集合中最大的日期, 可以用date max = collections.max(datelist);, 传入一个日期集合, 就可以获取, 工作中有这个需求, 就查找到这个, 代码如下 } e ...

  2. java list 拼音排序_java中实现List集合中对象元素按其属性的中文拼音排序

    java中List集合的元素是按照添加顺序排序的,我们在实际开发过程中,可能会遇到需要对其内容进行排序的场景,接下来对我遇到的场景所采用的解决方式做个总结. 一.业务场景 管理后台商户名称下拉列表,需 ...

  3. JAVA中循环删除集合中元素的方法总结

    一.list集合循环删除元素 1.通过普通的for删除删除符合条件的多个元素 for(int i=0;i<list.size();i++){if(list.get(i).equals(" ...

  4. JAVA中循环删除集合中元素的方法

    使用Iterator的方式可以顺利删除和遍历 Iterator<String> it = list.iterator(); while(it.hasNext()){String x = i ...

  5. JDK8新特性(十一)之收集Stream流中的结果

    1.Stream流中的数据收集到集合中 Stream流提供collect方法,其参数需要一个java.util.stream.Collector<T,A,R>接口对象来指定收集到哪种集合中 ...

  6. (去重)如何去掉list集合中重复的元素

    目录 list集合中重复元素的去重 问题由来 方法一:通过两层循环来进行判断(不用重写 hashCode()和equals()方法) 方法二:利用list中contains方法去重(对象重写equal ...

  7. android 集合 内存泄漏,Android内存泄漏第二课--------(集合中对象没清理造成的内存泄漏 )...

    一.我们通常把一些对象的引用加入到了集合容器(比如ArrayList)中,当我们不需要该对象时,并没有把它的引用从集合中清理掉,这样这个集合就会越来越大.如果这个集合是static的话,那情况就更严重 ...

  8. Java集合中HashSet的实现原理

    1.HashSet概述: HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持.它不保证set 的迭代顺序:特别是它不保证该顺序恒久不变.此类允许使用null元素.HashSe ...

  9. python集合的运算、不使用有的运算符_无序的集合:Python中的数学集合运算

    全文共8958字,预计学习时长23分钟 图源:unsplash set是Python中无序的集合,它可以用于计算标准数学运算,例如交集.并集.差集和对称差集,Other集合(例如列表.元组和字典)不支 ...

最新文章

  1. php定义常量和静态常量的区别,php静态变量与自定义常量的区别实例详解
  2. 这 8 份「Paper + Code」,你一定用得上 | PaperDaily #08
  3. GDB多线程调试常用命令
  4. posix thread线程
  5. 1030 完美数列 (25 分)二分
  6. 机器学习算法总结之K近邻(KNN)
  7. Python第三方库安装及常见问题
  8. 一个迷茫的应届生程序员
  9. 5G C-V2X技术介绍
  10. java实现爬虫,爬取网易歌单信息
  11. fuchsia中virtio 后端实现
  12. 如何通过安装包安装应用到手机
  13. 有什么好用的gif制作软件 制作GIF表情包教程
  14. Android HID设备的连接
  15. 计算机技术英文文章作者及篇名,英语论文注释及参考文献格式
  16. 曲师大计算机技术专研毕业,今天,我们从曲师大毕业了!
  17. linux环境下配置apache ,mysql,php,超简单
  18. 小米手机不用html,小米手机不用三星AMOLED屏幕的真相
  19. 图神经网络 —— 排列不变函数
  20. 我遇到过最奇葩的初面!

热门文章

  1. 当前时间加30分钟_男性早晨坚持慢跑30分钟,一段时间后,或许这些变化不请自来...
  2. 常用计算机的外部组成设备有哪些,9计算机外部设备..doc
  3. python删除第一行_python3.7 openpyxl 删除指定一列或者一行的代码
  4. java ztree json_java 树形转换JSON 工具类 / 树形子父级菜单递归 JSON 格式
  5. VB获取Windows操作系统所有版本
  6. 年总结(八):关于思考的重新认识
  7. 二度整理交换机有感(续)
  8. 李飞飞李佳“逆风翻盘”:谷歌全新AutoML产品发布,AI客服规模化商用
  9. springmvc和json整合配置方法
  10. logback之使用demo