springmvc的form表单 spring mvc 接收页面表单List
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 %> <!DOCTYPE HTML PUBLIC //W C//DTD HTML Transitional//EN > <> <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> </>
现在我们来测试下
我们可以看到后台报错了 具体为何大家可以去看源码
可以用 种方式解决这个问题
在表单提交之前 把表单序列化成JSON格式传到后台 在来解析封装成List<User>
我们创建一个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 %> <!DOCTYPE HTML PUBLIC //W C//DTD HTML Transitional//EN > <> <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> </>
我们来看下控制台打印的结果:
lishixinzhi/Article/program/Web/201405/30790