在使用Spring MVC时我们总会遇到各种各样的问题,需要我们花费比较多的时间去查阅资料或者在网上寻找解决方案。例如:当我们在做批量添加或者更新时,在Controller层接收表单数据的问题!本文我们主要就是来解决Spring MVC接收页面表单List的问题。
首先,我们来做一个对用户批量添加的实验!
用户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 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.
2.我们创建一个UserModel
public class UserModel {
private List users;
public List getUsers() {
return users;
}
public void setUsers(List users) {
this.users = users;
}
public UserModel(List 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的问题。
事实上,本文讲的Spring MVC接收页面表单List的问题在Spring MVC中并不是什么大问题,可能不值一提,但是确实会影响到许多人的使用。当然,这样的类似问题还有很多,怎么办呢?遇到问题的小伙伴可以观看本站的Spring MVC视频教程,里面说不定就要你一直寻找的答案!
QCode09-04 14:38
Code大师09-04 14:50
不写代码你养我啊08-23 11:14
不写代码你养我啊09-17 18:02
要学习了06-18 18:13