spring mvc 接收页面表单List
很少写博客,如果写的不好请多多包涵!
最近在用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的更多相关文章
- SpringMVC接收页面表单参数-java-电脑编程网
body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...
- SpringMVC接收页面表单参数
一个普通的表单. 表单的代码如下: <%@ page language="java" contentType="text/html; charset=UTF-8&q ...
- SpringMVC接收页面表单参数(转)
作者:CN.programmer.Luxh 和java相关 一个普通的表单. 表单的代码如下: <%@ page language="java" contentType=&q ...
- Spring MVC接收参数(Map,List,JSON,Date,2个Bean)(记录一次面试惨状)
题目Spring MVC 接收参数 MapListDate2个BeanJSON Spring MVC接收参数 -Map Spring MVC接收参数 -List Spring MVC接收参数 -dat ...
- html 页面表单如果是disabled,则不能提交到服务器端,request.getParameter得到的将为null
html 页面表单如果是disabled,则不能提交到服务器端,request.getParameter得到的将为null 解决方法:使用hidden 利用javascript赋值,传递到后台
- 把JSON数据载入到页面表单的两种思路(对easyui自带方法进行改进)
#把JSON数据载入到页面表单的两种思路(对easyui自带方法进行改进) ##背景 项目中经常需要把JSON数据填充到页面表单,一开始我使用easyui自带的form load方法,觉得效率很低,经 ...
- 记录ASP.NET页面表单初始状态(主要是为了前台可以根据这个判断页面是否变动了)
把页面表单状态记录到HiddenField中. 这里只提供后台代码, 前台逻辑根据需求自由定义. 存放值的ViewState: protected Dictionary<string, stri ...
- 使用Spring mvc接收整个url地址及参数时注意事项
使用Spring mvc接收整个url地址及参数时注意事项:url= http://baidu?oid=9525c1f2b2cd45019b30a37bead6ebbb&td=2015-08- ...
- spring mvc接收ajax提交的JSON数据,并反序列化为对象
需求:spring mvc接收ajax提交的JSON数据,并反序列化为对象,代码如下: 前台JS代码: //属性要与带转化的对象属性对应 var param={name:'语文',price:16}; ...
随机推荐
- windows下揪出java程序占用cpu很高的线程 并找到问题代码 死循环线程代码
我的一个java程序偶尔会出现cpu占用很高的情况 一直不知道什么原因 今天终于抽时间解决了 系统是win2003 jvisualvm 和 jconsole貌似都只能看到总共占用的cpu 看不到每个线 ...
- OperateParticleWithCodes
[OperateParticleWithCodes] Listing 6-6 shows how you might configure an emitter’s scale property. Th ...
- oracle存储过程返回数据集结果
MSSQL的存储过程返回数据集好简单,直接SELECT 就可以. ORACLE的存储过程返回数据集必须通过游标. 创建ORACLE存储过程 create or replace procedure cx ...
- Umbraco部署到IIS中权限问题(back office没有权限新建template)
在开发项目中,发现把基于Umbraco平台开发的网站部署到服务器的IIS之后,访问该网站的back office 在back office中增加一个template时,发送错误,提示 Access t ...
- Codeforces 161 B. Discounts (贪心)
题目链接:http://codeforces.com/contest/161/problem/B 题意: 有n个商品和k辆购物车,给出每个商品的价钱c和类别t(1表示凳子,2表示铅笔),如果一辆购物车 ...
- thinkphp利用行为扩展实现监听器
1.在User/login函数中添加如下代码 tag('login_listener',$result); //alert('success', '恭喜,登录成功', U('xx/yy')); 去掉跳 ...
- linux自启动服务方式
方式一: /etc/init.d/servicename restart 编写 /etc/init.d/ 下面的标准的服务shell脚本 方式二: vim /etc/rc.local /home/ ...
- nginx打开目录游览功能
#开启索引功能 location / { autoindex on; autoindex_exact_size off; autoindex_localtime on; } #别名目录location ...
- easymock入门贴
from:http://macrochen.iteye.com/blog/298032 关于EasyMock常见的几个问题, 这里(http://ozgwei.blogspot.com/2007/06 ...
- jsp中使用动态数据进行mySQL数据库的两种操作方法
使用动态数据进行数据库内容的增删改查操作有两种方法: 在此定义数据库连接为conn 假设有表单进行数据输入并提交到处理页面一种是使用预编译格式: 其格式如下: String name = reques ...