最近在用Spring mvc時遇到一個問題在網上搜了很多資料幾乎沒看到解決辦法!
例如當我們在做批量添加或者更新時在Controller層接收表單數據的問題!
我們做一個對用戶批量添加的實驗!
用戶Model
public class User {
//用戶名
private String username;
//密碼
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
thisusername = username == null ? null : usernametrim();
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
thispassword = password == null ? null : passwordtrim();
}
public User(String username String password) {
super();
thisusername = username;
thispassword = password;
}
public User() {
super();
}
}
控制層
@Controller
@RequestMapping(/)
public class UserController {
/**
* Logger for this class
*/
private static final Logger logger = LoggergetLogger(UserControllerclass);
@RequestMapping(/user)
public void test(List<User> users){
loggerdebug(JSONArraytoJSON(users));
}
}
我們在創建一個jsp
<%@ page language=java import=javautil* pageEncoding=UTF%>
<!DOCTYPE HTML PUBLIC //WC//DTD HTML Transitional//EN>
<html>
<head>
<title>表單批量提交</title>
</head>
<body>
<form action=user method=post>
用戶名<input type=text name=username[]><br/>
密碼<input type=text name=password[]><br/>
用戶名<input type=text name=username[]><br/>
密碼<input type=text name=password[]><br/>
<input type=submit>
</form>
</body>
</html>
現在我們來測試下
我們可以看到後台報錯了具體為何大家可以去看源碼
可以用種方式解決這個問題
在表單提交之前把表單序列化成JSON格式傳到後台在來解析封裝成List<User>
我們創建一個UserModel
public class UserModel {
private List<User> users;
public List<User> getUsers() {
return users;
}
public void setUsers(List<User> users) {
thisusers = users;
}
public UserModel(List<User> users) {
super();
thisusers = users;
}
public UserModel() {
super();
}
}
修改我們的控制層和頁面
@RequestMapping("/user")
public void test(UserModel userModel ){
loggerdebug(JSONArraytoJSON(userModel));
}
<%@ page language=java import=javautil* pageEncoding=UTF%>
<!DOCTYPE HTML PUBLIC //WC//DTD HTML Transitional//EN>
<html>
<head>
<title>表單批量提交</title>
</head>
<body>
<form action=user method=post>
用戶名<input type=text name=users[]username><br/>
密碼<input type=text name=users[]password><br/>
用戶名<input type=text name=users[]username><br/>
密碼<input type=text name=users[]password><br/>
<input type=submit>
</form>
</body>
</html>
我們來看下控制台打印的結果:
這樣我們就解決啦!
From:http://tw.wingwit.com/Article/program/Web/201405/30790.html