当前位置: 澳门新濠3559 > 编程 > 正文

只需要在form表单对应的字段html空间中定义name,

时间:2019-11-29 05:50来源:编程
今天因为要额外提交参数数组性的参数给form传到后台而苦恼了半天,结果发现,只需要在form表单对应的字段html空间中定义name= 后台参数名 的属性就ok了。 澳门新濠3559,SpringMVC中使用

今天因为要额外提交参数数组性的参数给form传到后台而苦恼了半天,结果发现,只需要在form表单对应的字段html空间中定义name = 后台参数名 的属性就ok了。

澳门新濠3559,SpringMVC中使用bean来接收form表单提交的参数时的注意点,springmvcbean

这是前辈们对于SpringMVC接收表单数据记录下来的总结经验:

SpringMVC接收页面表单参数

springmvc请求参数获取的几种方法

 

下面是我自己在使用时发现的,前辈们没有记录的细节和注意点:

使用bean来接收form表单提交的参数时,pojo中必须含有默认的(即空的)构造函数,同时,需要设置到bean中的变量必须有setter方法。

注:以下代码均为示例代码,非本人实际运行代码,请自行补充。

例如:我有一个bean类是User,具有变量username和password。同时,表单提交的内容为:

<form action="save-user-info" method="post">
    帐号:<input type="text" name="username"><br>
    密码:<input type="text" name="password"><br>
    <input type="submit" value="保存">
</form>

那么,在User.java文件中必须具有

public User() {}

public void setUsername(String username) {
    this.username = username;
}

public void setPassword(String password) {
    this.password = password;
}

此时,我在Controller中才能成功接收到参数并生成对应的bean对象

@RequestMapping(value="/save-user-info")
public String saveUser(SsbiUser user) {
    System.out.println(user.toString());
    return "user-info";
}

通过一些测试,我把这个过程理解为,前台提交了一个包含User数据的form表单后,后台接受到参数后,首先会生成一个不包含任何参数的User对象,然后通过setter方法往这个空的对象这设置对应的值,最终得到我们需要的User对象。

而不是我一开始以为的,后台接受到参数以及直接调用对应的User(username, password)构造方法生成需要的对象。

 

这是前辈们对于SpringMVC接收表单数据记录下来的总结经验: SpringMVC接收...

澳门新濠3559 1

后台本来是只有模型参数的,但是后来增加了一个。

只要在前台定义 name="Users" 的select 。

澳门新濠3559 2

 

点击提交的时候,select 的多选值会自动传入后台参数Users[]中。

澳门新濠3559 3

已经是第二次忘记这个神奇的作用,特此记下。

 

编辑:编程 本文来源:只需要在form表单对应的字段html空间中定义name,

关键词: