19SpringMvc_在业务控制方法中收集List集合中包含JavaBean参数
本文要实现的功能是给一张表单:
可以看到这样表格一共有四行,每一行代表一个员工(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参数相关推荐
- java List最大_在java中获取List集合中最大的日期时间操作
取list集合中最大的日期, 可以用date max = collections.max(datelist);, 传入一个日期集合, 就可以获取, 工作中有这个需求, 就查找到这个, 代码如下 } e ...
- java list 拼音排序_java中实现List集合中对象元素按其属性的中文拼音排序
java中List集合的元素是按照添加顺序排序的,我们在实际开发过程中,可能会遇到需要对其内容进行排序的场景,接下来对我遇到的场景所采用的解决方式做个总结. 一.业务场景 管理后台商户名称下拉列表,需 ...
- JAVA中循环删除集合中元素的方法总结
一.list集合循环删除元素 1.通过普通的for删除删除符合条件的多个元素 for(int i=0;i<list.size();i++){if(list.get(i).equals(" ...
- JAVA中循环删除集合中元素的方法
使用Iterator的方式可以顺利删除和遍历 Iterator<String> it = list.iterator(); while(it.hasNext()){String x = i ...
- JDK8新特性(十一)之收集Stream流中的结果
1.Stream流中的数据收集到集合中 Stream流提供collect方法,其参数需要一个java.util.stream.Collector<T,A,R>接口对象来指定收集到哪种集合中 ...
- (去重)如何去掉list集合中重复的元素
目录 list集合中重复元素的去重 问题由来 方法一:通过两层循环来进行判断(不用重写 hashCode()和equals()方法) 方法二:利用list中contains方法去重(对象重写equal ...
- android 集合 内存泄漏,Android内存泄漏第二课--------(集合中对象没清理造成的内存泄漏 )...
一.我们通常把一些对象的引用加入到了集合容器(比如ArrayList)中,当我们不需要该对象时,并没有把它的引用从集合中清理掉,这样这个集合就会越来越大.如果这个集合是static的话,那情况就更严重 ...
- Java集合中HashSet的实现原理
1.HashSet概述: HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持.它不保证set 的迭代顺序:特别是它不保证该顺序恒久不变.此类允许使用null元素.HashSe ...
- python集合的运算、不使用有的运算符_无序的集合:Python中的数学集合运算
全文共8958字,预计学习时长23分钟 图源:unsplash set是Python中无序的集合,它可以用于计算标准数学运算,例如交集.并集.差集和对称差集,Other集合(例如列表.元组和字典)不支 ...
最新文章
- php定义常量和静态常量的区别,php静态变量与自定义常量的区别实例详解
- 这 8 份「Paper + Code」,你一定用得上 | PaperDaily #08
- GDB多线程调试常用命令
- posix thread线程
- 1030 完美数列 (25 分)二分
- 机器学习算法总结之K近邻(KNN)
- Python第三方库安装及常见问题
- 一个迷茫的应届生程序员
- 5G C-V2X技术介绍
- java实现爬虫,爬取网易歌单信息
- fuchsia中virtio 后端实现
- 如何通过安装包安装应用到手机
- 有什么好用的gif制作软件 制作GIF表情包教程
- Android HID设备的连接
- 计算机技术英文文章作者及篇名,英语论文注释及参考文献格式
- 曲师大计算机技术专研毕业,今天,我们从曲师大毕业了!
- linux环境下配置apache ,mysql,php,超简单
- 小米手机不用html,小米手机不用三星AMOLED屏幕的真相
- 图神经网络 —— 排列不变函数
- 我遇到过最奇葩的初面!
热门文章
- 当前时间加30分钟_男性早晨坚持慢跑30分钟,一段时间后,或许这些变化不请自来...
- 常用计算机的外部组成设备有哪些,9计算机外部设备..doc
- python删除第一行_python3.7 openpyxl 删除指定一列或者一行的代码
- java ztree json_java 树形转换JSON 工具类 / 树形子父级菜单递归 JSON 格式
- VB获取Windows操作系统所有版本
- 年总结(八):关于思考的重新认识
- 二度整理交换机有感(续)
- 李飞飞李佳“逆风翻盘”:谷歌全新AutoML产品发布,AI客服规模化商用
- springmvc和json整合配置方法
- logback之使用demo