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

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

问题描述:

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

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

演示例子:

要求:

模拟修改操作
1.原始数据:1,Tom,123456,tom@atguigu.com,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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值