java

位置:IT落伍者 >> java >> 浏览文章

spring mvc 接收页面表单List


发布日期:2018年11月12日
 
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) {        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>

我们来看下控制台打印的结果:

这样我们就解决啦!

               

上一篇:jsp中把js变量赋给java变量,或者将java变量赋给js变量怎么做?

下一篇:有关ssh框架的面试题 — ibatis与hibernate有什么区别