회원가입, Insert 구현
//user.xml
<insert id="save">
INSERT INTO user(username, password, email)
VALUES (#{username}, #{password}, #{email})
</insert>
public interface UserRepository {
public void save(User user);
}
@GetMapping("/join")
public String joinPage() {
return "user/joinForm";
}
@PostMapping("/joinProc")
public String joinProc(User user) {
System.out.println("joinProc 실행" + user);
userRepository.save(user);
return "home";
}
viewResolver를 잘못쓰고 있음
@PostMapping("/joinProc")
public @ResponseBody String joinProc(User user) {
System.out.println("joinProc 실행" + user);
User username = userRepository.findByUsername(user);
if(username != null) {
return Script.back("아이디가 중복되었습니다.");
} else {
userRepository.save(user);
return Script.href("회원가입이 완료되었습니다.", "/login");
}
}
여기서도 user 전체를 가져오면 안되고 username만을 가져와야 한다.
public User findByUsernameAndPassword(User user);
public User findByUsername(String username);
광열햄한테 물어보기. 회원가입 로직. 약간 다름
// 회원가입
@PostMapping("joinProc")
public @ResponseBody String joinProc(User user) {
User principal = userRepository.findByUsername(user.getUsername()); // 여기에 user.getUsername()와
if(principal != null) {
return Script.back("아이디가 중복입니다.");
}
userRepository.save(user);
principal = userRepository.findByUsername(user.getUsername()); // 밑에 user.getUsername() 값 같지 않음?
if(principal != null) {
return Script.href("회원가입에 성공하였습니다.", "/login");
} else {
return Script.back("회원가입에 실패하였습니다.");
}
}