我正在學習 Spring-Boot,我正在做一個小專案來練習,但是我有一個問題。
這是一個簡單的身份驗證應用程式,您可以注冊并登錄。我的目標是:如果您登錄,應該會出現您的用戶名,并且對于更多功能,我還需要 ID。
所以我有這個代碼:
@PostMapping("/main")
public String login(@ModelAttribute Users user, Model model) {
time = sdf.format(new Date());
Users correctUser = serv.selectUser(user.getName(), user.getPassword());
if (correctUser != null) {
//Users data
login_name = user.getName();
actual_user_id = user.getId();
model.addAttribute("given_name", login_name);
System.out.println("DEBUG: " user);
System.out.println(time " Successful");
return "main_screen";
} else {
System.out.println(time " Log in failed");
return "error_page";
}
}
我可以在login_name中很好地獲取和存盤名稱,但是使用 ID 我有一些問題。如您所見,我使用與 name 相同的 user.getId(),但無論哪種方式,我都會得到 null 并且無法將 ID 存盤在我的actual_user_id變數中。
這是我的存盤庫:
@Repository
public interface UserRepository extends JpaRepository<Users, Integer> {
Optional<Users> findFirstByName(String name);
Optional<Users> findUserByNameAndPassword(String name, String password);
}
還有我的服務方法:
public Users authentication(String name, String password) {
return repo.findUserByNameAndPassword(name, password).orElse(null);
}
編輯:這是我的用戶類
@Entity
@Table(name = "users")
public class Users {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String name;
private String password;
private String email;
public Integer getId() {
return id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "Users{"
"id=" id
", name='" name '\''
", passowrd='" password '\''
", email='" email '\''
'}';
}
}
我認為它應該作業,但我找不到問題。誰能幫我?正如我所看到的,我使用 findUserByNameAndPassword() 獲得了名稱和密碼,沒有別的,但是我應該想。
uj5u.com熱心網友回復:
您看起來正試圖從發布請求中傳遞給您的用戶那里獲取您的 ID:
actual_user_id = user.getId();
嘗試從您從資料庫中檢索的用戶那里獲取您的資訊:
actual_user_id = correctUser.getId();
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/475956.html
下一篇:SpringBoot和H2表填充錯誤:org.hibernate.tool.schema.spi.CommandAcceptanceException:執行DDL時出錯
