SpringMVC_10_ 處理模型資料(二)之 ModelAttribute
阿新 • • 發佈:2018-12-29
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.