熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Web編程 >> 正文

spring mvc 接收頁面表單List

2022-06-13   來源: Web編程 

  最近在用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
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.