国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
讓 SpringMVC 接收多個對象的4種方法 – 碼農網

問題背景:

我要在一個表單里同時一次性提交多名乘客的個人信息到SpringMVC,前端HTML和SpringMVC Controller里該如何處理?

  • 第1種方法:表單提交,以字段數組接收;
  • 第2種方法:表單提交,以BeanListModel接收;
  • 第3種方法:將Json對象序列化成Json字符串提交,以List接收;
  • 第4種方法:將表單對象序列化成Json字符串提交,以List接收;
    第4種方法其實是第3種方法的升級,就是將表單轉成Json對象,再轉成Json字符串提交;
    然而,第4種方法還不支持含有多選控件表單的提交,故應該還有第5種加強版的方法。

以上4種方法都共用同一個User實體類,代碼如下:

public class User {    private Integer id;    private String name;    private String pwd;    @Override    public String toString() {        return 'User{' +                'id=' + id +                ', name='' + name + '\'' +                ', pwd='' + pwd + '\'' +                '}';    }    // .......后面還有getter、setter方法,省略了 }

第1種方法:表單提交,以字段數組接收

HTML代碼如下:

    
ID:
Username:
Password:

ID:
Username:
Password:

Java代碼如下:

    @RequestMapping(value = '/submitUserList_1', method ={RequestMethod.POST})    @ResponseBody    public String submitUserList_1(HttpServletResponse response,Integer[] id, String[] name, String[] pwd)                            throws Exception{        String result = '';        if(id == null || id.length <= 0){ return 'No any ID.中文'; }        List userList = new ArrayList();        for (int i = 0; i < id.length; i++ ) {            User user = new User();            user.setId(id[i]);            user.setName(name[i]);            user.setPwd(pwd[i]);            userList.add(user);        }        result = this.showUserList(userList);        return result;    }

第2種方法:表單提交,以BeanListModel接收

HTML代碼如下:

    
ID:
Username:
Password:

ID:
Username:
Password:

Java代碼:

除了剛才公用的User類,還要封裝一個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();    }}

SpringMVC Controller方法:

    @RequestMapping(value = '/submitUserList_2', method ={RequestMethod.POST})    @ResponseBody    public String submitUserList_2(UserModel users)            throws Exception{        String result = '';        List userList = users.getUsers();        if(userList == null || userList.size() <= 0){ return 'No any ID.中文'; }        result = this.showUserList(userList);        return result;    }

第3種方法:將Json對象序列化成Json字符串提交,以List接收

HTML代碼:

                

submitUserList_4

ID:
Username:
Password:

ID:
Username:
Password:

Java代碼:

    @RequestMapping(value = '/submitUserList_4', method ={RequestMethod.POST})    @ResponseBody    public String submitUserList_4(@RequestBody List users)            throws Exception{        String result = '';        if(users == null || users.size() <= 0){ return 'No any ID.中文'; }        result = this.showUserList(users);        return result;    }

總結:

第1、2種方法其實都有一個共同的BUG:假如提交三條記錄時,前面兩條記錄的某些字段不填值的話,在SpringMVC里接收不準確了。而且,每2種方法在HMTL中需要給name屬性添加[下標],如果下標有跨度的話(比如第一組控件下標是0,第二組下標是2),那么SpringMVC里其實的是0到2三個對象的,默認下標是1的那個對象全為null值。
第3、4種方法最實用。

本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
4種方法讓SpringMVC接收多個對象
jQuery實現ajax提交form表單(可以是提交json),用springmvc接收。圖文詳解
springmvc接收前臺(可以是ajax)傳來的數組list,map,set等集合,復雜對象集合等圖文詳解
Java單元測試技巧之JSON序列化
springMVC MultipartFile file文件上傳及參數接受
springMvc直接接收json數據自動轉化為Map<String,String>
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服