掘金日新计划 · 8 月更文挑战第10天--spring-mvc的Post方法获取实体对象

66 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第10天,[点击查看活动详情]

今天来学习一下表单多个参数提交的问题,来吧,上车!

1.我们在提交表单时候,有时候涉及到的字段会超过几十个字段,比如学生档案,遇到这种情况,我们如何快速方便获取所有字段呢,前面的课程我们学习是通过一个一个字段传,这种针对字段少的情况,今天我们来使用一种全新的方法,特别是针对字段多的情况,

image.png
原先的方案:可参考之前的文章掘金日新计划 · 8 月更文挑战第9天--spring-mvc的Post和Get方法说明第四点说明 image.png
针对多个字段,我们使用定义实体对象来处理,接下来跟着我一起来学习一下

2.查看一下之前的项目结构:

image.png
首先,我们在webapp下创建一个login.html表单并且设置两个字段

<form action="/submit" method="post">
    <input name="username"><br/>
    <input name="password"><br/>
    <input type="submit" value="登录">
</form>

3.定义Login实体类,其中实体类的字段名字必须要和html文件定义的字段名称一样,比如我们在logon.html定义了username和password,那么我们在实体类中定义的字段也为 username和password,并且设置对应字段的get和set方法

package com.imooc.springmvc.entity;
public class Login {
    private String username;
    private  String password;

    public String getUsername() {
        return username;
    }

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

    public String getPassword() {
        return password;
    }

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

在控制器中定义api地址和获取参数的方法,获取参数只要把实体对象作为请求参数传递进来即可,比如当前的Login实体,获取对应字段,使用实体.getName的方式拿到字段value

@PostMapping("submit")
@ResponseBody
public void login(Login login){
    System.out.println(login);
    System.out.println(login.getUsername()+":"+login.getPassword());
}

结果如下: image.png