很少写博客,如果写的不好请多多包涵!

最近在用Spring mvc时遇到一个问题,在网上搜了很多资料。几乎没看到解决办法!

例如:当我们在做批量添加或者更新时,在Controller层接收表单数据的问题!

我们做一个对用户批量添加的实验!

用户Model:

 public class User {

     //用户名
private String username;
//密码
private String password; public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username == null ? null : username.trim();
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password == null ? null : password.trim();
} public User(String username, String password) {
super();
this.username = username;
this.password = password;
} public User() {
super();
} }

控制层:

 @Controller
@RequestMapping("/")
public class UserController {
/**
* Logger for this class
*/
private static final Logger logger = Logger.getLogger(UserController.class); @RequestMapping("/user")
public void test(List<User> users){
logger.debug(JSONArray.toJSON(users));
}
}

我们在创建一个jsp:

 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>表单批量提交</title>
</head> <body>
<form action="user" method="post">
用户名:<input type="text" name="username[0]"><br/>
密码:<input type="text" name="password[0]"><br/>
用户名:<input type="text" name="username[1]"><br/>
密码:<input type="text" name="password[1]"><br/>
<input type="submit">
</form>
</body>
</html>

现在我们来测试下

我们可以看到后台报错了.具体为何大家可以去看源码

可以用2种方式解决这个问题:

1.在表单提交之前,把表单序列化成JSON格式传到后台,在来解析封装成List<User>.

2.

我们创建一个UserModel

 public class UserModel {
private List<User> users; public List<User> getUsers() {
return users;
} public void setUsers(List<User> users) {
this.users = users;
} public UserModel(List<User> users) {
super();
this.users = users;
} public UserModel() {
super();
} }

修改我们的控制层和页面

 @RequestMapping("/user")
public void test(UserModel userModel ){
logger.debug(JSONArray.toJSON(userModel));
}
 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>表单批量提交</title>
</head> <body>
<form action="user" method="post">
用户名:<input type="text" name="users[0].username"><br/>
密码:<input type="text" name="users[0].password"><br/>
用户名:<input type="text" name="users[1].username"><br/>
密码:<input type="text" name="users[1].password"><br/>
<input type="submit">
</form>
</body>
</html>

我们来看下控制台打印的结果:

这样我们就解决啦!

spring mvc 接收页面表单List的更多相关文章

  1. SpringMVC接收页面表单参数-java-电脑编程网

    body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...

  2. SpringMVC接收页面表单参数

    一个普通的表单. 表单的代码如下: <%@ page language="java" contentType="text/html; charset=UTF-8&q ...

  3. SpringMVC接收页面表单参数(转)

    作者:CN.programmer.Luxh 和java相关 一个普通的表单. 表单的代码如下: <%@ page language="java" contentType=&q ...

  4. Spring MVC接收参数(Map,List,JSON,Date,2个Bean)(记录一次面试惨状)

    题目Spring MVC 接收参数 MapListDate2个BeanJSON Spring MVC接收参数 -Map Spring MVC接收参数 -List Spring MVC接收参数 -dat ...

  5. html 页面表单如果是disabled,则不能提交到服务器端,request.getParameter得到的将为null

    html 页面表单如果是disabled,则不能提交到服务器端,request.getParameter得到的将为null 解决方法:使用hidden 利用javascript赋值,传递到后台

  6. 把JSON数据载入到页面表单的两种思路(对easyui自带方法进行改进)

    #把JSON数据载入到页面表单的两种思路(对easyui自带方法进行改进) ##背景 项目中经常需要把JSON数据填充到页面表单,一开始我使用easyui自带的form load方法,觉得效率很低,经 ...

  7. 记录ASP.NET页面表单初始状态(主要是为了前台可以根据这个判断页面是否变动了)

    把页面表单状态记录到HiddenField中. 这里只提供后台代码, 前台逻辑根据需求自由定义. 存放值的ViewState: protected Dictionary<string, stri ...

  8. 使用Spring mvc接收整个url地址及参数时注意事项

    使用Spring mvc接收整个url地址及参数时注意事项:url= http://baidu?oid=9525c1f2b2cd45019b30a37bead6ebbb&td=2015-08- ...

  9. spring mvc接收ajax提交的JSON数据,并反序列化为对象

    需求:spring mvc接收ajax提交的JSON数据,并反序列化为对象,代码如下: 前台JS代码: //属性要与带转化的对象属性对应 var param={name:'语文',price:16}; ...

随机推荐

  1. SPI移位寄存器

    spi移位寄存器即是spi的数据寄存器,在stm32中数据手册是这样描述的:

  2. poj 2594 Treasure Exploration(最小路径覆盖+闭包传递)

    http://poj.org/problem?id=2594 Treasure Exploration Time Limit: 6000MS   Memory Limit: 65536K Total ...

  3. lua学习:游戏中的Lua

    lua作为一种脚本语言,可以快速地开发游戏的原型.提高游戏的开发效率. 在游戏中,lua可以用来完成下面这些工作: ●编辑游戏的用户界面 ●定义.存储和管理基础游戏数据 ●管理实时游戏事件 ●创建和维 ...

  4. UVaLive 6694 Toy Boxes (二分+想法)

    题意:给出n个数,把n个数放在三个盒子里,每个盒子里的数绑在一起,要拿出来任何一个数的时候,所承担的重量是整个盒子的总重量,求最小总重量和. 析:感觉吧,就是轻的放的多一些,拿的次数多一些,大的放的少 ...

  5. Lotus 迁移到Exchange 2010 POC 之在Exchange 2007安装Transport Suite!

    我们登录到Exchange 2007服务器,下载Transport 组件,下载地址如下,我们由于安装在Exchange 服务器上,所以需要安装64位版本:

  6. SQLServer: 无法修改表

    工具—选项—Designers—表设计器和数据库设计器—阻止保存要求重新创建表的更改前的勾去掉.

  7. HTML要点(五)<iframe>标签

    浏览器支持:全部支持 定义和用法 iframe 元素会创建包含另外一个文档的内联框架(即行内框架). HTML 与 XHTML 之间的差异 在 HTML 4.1 Strict DTD 和 XHTML ...

  8. Programming pages of Jasper Neumann

    http://programming.sirrida.de/ Discussion topics Bit permutations Download source files List of func ...

  9. CMSIS-DAP调试器

    http://www.keil.com/support/man/docs/dapdebug/dapdebug_introduction.htm CMSIS-DAP is the interface f ...

  10. sqldependency 支持的select

    https://msdn.microsoft.com/library/ms181122.aspx   支持的 SELECT 语句 满足下列要求的 SELECT 语句支持查询通知: 必须显式说明 SEL ...