动力节点旗下在线教育品牌  |  咨询热线:400-8080-105 学Java全栈,上蛙课网
首页 > 文章

Spring MVC接收页面表单List

09-04 17:26 69浏览
举报 T字号
  • 大字
  • 中字
  • 小字

使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视频教程,里面说不定就要你一直寻找的答案!

0人推荐
共同学习,写下你的评论
0条评论
ya离谱
程序员ya离谱

9篇文章贡献59976字

作者相关文章更多>

推荐相关文章更多>

DOM渲染的详细过程

QCode09-04 14:38

CSS水平和垂直居中技巧大梳理

Code大师09-04 14:50

mui的input框在IOS系统下无法聚焦或点击多次才能聚焦

不写代码你养我啊08-23 11:14

推荐的-视.频播放器以及在线客服

不写代码你养我啊09-17 18:02

谈谈java多线程的三大特性

要学习了06-18 18:13

发评论

举报

0/150

取消