728x90
SpringBoot · intelliJ · OracleDB · Thymeleaf
1. 엔티티추가
SiteUser.java
@Column(unique = true)
private String nickname;
2. 회원가입 폼 수정
UserCreateForm.java
@NotEmpty(message = "닉네임을 입력해주세요.")
private String nickname;
3. 서비스
UserService.java
public SiteUser create(String username, String email, String password, String nickname) {
SiteUser user = new SiteUser();
user.setUsername(username);
user.setNickname(nickname);
user.setEmail(email);
user.setPassword(passwordEncoder.encode(password));
this.userRepository.save(user);
return user;
}
4. 컨트롤러 수정
UserController.java
try {
userService.create(userCreateForm.getUsername(),
userCreateForm.getEmail(), userCreateForm.getPassword1(), userCreateForm.getNickname());
}catch(DataIntegrityViolationException e) {
e.printStackTrace();
bindingResult.reject("signupFailed", "이미 등록된 사용자입니다.");
return "signup_form";
}catch(Exception e) {
e.printStackTrace();
bindingResult.reject("signupFailed", e.getMessage());
return "signup_form";
}
userCreateFrom.getNickname() 추가
5. html수정
question_detail.html
본문 위치
<div class="badge bg-light text-dark p-2 text-start">
<div class="mb-2">
<span th:if="${question.author != null}" th:text="${question.author.nickname}"></span>
</div>
<div th:text="${#dates.format(question.createDate, 'yyyy-MM-dd HH:mm')}"></div>
<div th:text="|조회수 : ${question.countview}|" class="d-flex justify-content-end fw-bold"></div>
</div>
th:text="${question.author.nickname}" 으로 수정
댓글 위치
<div class="badge bg-light text-dark p-2 text-start">
<div class="mb-2">
<span th:if="${answer.author != null}" th:text="${answer.author.nickname}"></span>
</div>
<div th:text="${#dates.format(answer.createDate, 'yyyy-MM-dd HH:mm')}"></div>
</div>
th:text="${question.author.nickname}" 으로 수정
question_list.html
글쓴이가 닉네임으로 뜨게 수정
<td><span th:if="${question.author != null}" th:text="${question.author.nickname}"></span></td>
th:text="${question.author.nickname}" 으로 수정
회원가입
signup_form.html
<div class="mb-3">
<label for="username" class="form-label">사용자ID</label>
<input type="text" th:field="*{username}" class="form-control">
</div>
<div class="mb-3">
<label for="nickname" class="form-label">닉네임</label>
<input type="text" th:field="*{nickname}" class="form-control">
</div>
<div class="mb-3">
<label for="password" class="form-label">비밀번호</label>
<input type="password" th:field="*{password1}" class="form-control">
</div>
아이디 입력과 비밀번호 입력 사이에 닉네임 입력칸을 만들었다.
728x90
'Follow Work > SpringbootBoard' 카테고리의 다른 글
[Springboot] 유저 회원가입 [33] (0) | 2022.08.25 |
---|---|
[Springboot] 댓글 페이징 [32] (3) | 2022.08.25 |
[Springboot] 이전글 다음글 만들기 [30] (0) | 2022.08.25 |
[StringBoot] 카테고리 만들기 [29] (0) | 2022.08.24 |
[StringBoot] 조회수 만들기 [28] (2) | 2022.08.23 |