• spring mvc 接收页面表单List


    例如:当我们在做批量添加或者更新时,在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 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<User>

    我们创建一个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"%>
     2 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>

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

    这样我们就解决啦!

  • 相关阅读:
    qcow2文件压缩
    raw格式镜像文件压缩并转换为qcow2格式
    centos7 install virt-sysprep
    镜像简介
    QEMU 使用的镜像文件:qcow2 与 raw
    ubuntu14.04中国源
    less css下载及编绎工具
    分布式计算中WebService的替代方案: RPC (XML-RPC | JSON-RPC)
    Asp.net WebServer
    C#取调用堆栈StackTrace
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/4964586.html
Copyright © 2020-2023  润新知