博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
4种方法让SpringMVC接收多个对象
阅读量:6497 次
发布时间:2019-06-24

本文共 3847 字,大约阅读时间需要 12 分钟。

hot3.png

问题背景:

我要在一个表单里同时一次性提交多名乘客的个人信息到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_3    

submitUserList_3

Java代码:

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

第4种方法:将表单对象序列化成Json字符串提交,以List接收

HTML代码:

    submitUserList_4    

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; }

转载于:https://my.oschina.net/u/3421984/blog/1606857

你可能感兴趣的文章
一步步的教你安装UChome (UChome 安装教程)
查看>>
[DeeplearningAI笔记]序列模型1.5-1.6不同类型的循环神经网络/语言模型与序列生成...
查看>>
P2533 [AHOI2012]信号塔
查看>>
Android电话拨号器(uri格式)与四种设置点击事件的方法
查看>>
java web中对json的使用
查看>>
TYVJ P1051 选课 Label:多叉转二叉&&树形dp(虐心♥)
查看>>
将数据库中提取出来的数据在后台进行分页处理
查看>>
bzoj1034
查看>>
百度地图 鼠标绘制,获取矩形,多边形的顶点经纬度
查看>>
回文树模板
查看>>
struts2之防止表单重复提交
查看>>
【转】Netty系列之Netty并发编程分析
查看>>
cf591d
查看>>
图片存储系统TFS
查看>>
MYSQL备份与恢复
查看>>
贪心/数学 Codeforces Round #212 (Div. 2) A. Two Semiknights Meet
查看>>
Python类__call__()方法
查看>>
「小程序JAVA实战」 小程序wxss样式文件的使用(七)
查看>>
容斥定理,皮克公式
查看>>
git+idea
查看>>