SpringMVC_10_ 处理模型数据(二)之 ModelAttribute

SpringMVC_10_ 处理模型数据(二)之 ModelAttribute

问题描述:

当我想要完成一个修改操作,条件是有一个字段不能被修改。比如说录入的时间不能被修改。假如我们有三个字段,因为录入的时间字段不能被修改,剩下两个字段。一贯的操作是 new 一个User,给它附上两个字段的值(剩余的字段为空),然后更新数据库,然而这样会使得原来的时间字段变为null。

而ModelAttribute的做法是:不会new 一个User,而是从数据库中把相应的User拿出来再修改那两个字段,然后更新数据库后,就保留了原来的时间字段。

演示例子:

要求:

模拟修改操作
1.原始数据:1,Tom,123456,[email protected],12
2.密码不能被修改
3.表单回显,模拟操作直接在表单填写对应的属性值

User.java

package com.springmvc.entities;

public class User {

    private Integer id;

    private  String username;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    private  String password;

    private  int age;
    private  String email;

    private Address address;

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

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public Address getAddress() {
        return address;
    }

    public void setAddress(Address address) {
        this.address = address;
    }

  /*  @Override
    public String toString() {
        return "User{" +
                "username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", age=" + age +
                ", email='" + email + '\'' +
                ", address=" + address +
                '}';
    }*/

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", age=" + age +
                ", email='" + email + '\'' +
                '}';
    }

    public User(String username, String password, String email, int age) {
        this.username = username;
        this.password = password;
        this.age = age;
        this.email = email;
    }

    public User(Integer id, String username, String password, String email, int age) {
        this.id = id;
        this.username = username;
        this.password = password;
        this.age = age;
        this.email = email;
    }
    public User(){

    }
}

1.在index.jsp中写好一个表单

在这里插入图片描述

2.编写控制器中的handler方法

在这里插入图片描述

3.运行程序,提交表单

在这里插入图片描述
在这里插入图片描述

这样是没有达成目的的。

4.修改方法

在这里插入图片描述
在这里插入图片描述

tips:

在这里插入图片描述
在这里插入图片描述

by the way:

在这里插入图片描述

解决方法一:

在这里插入图片描述

解决方法二

写@ModelAttribute.

猜你喜欢

转载自blog.csdn.net/weixin_42036647/article/details/85331498
今日推荐