관심 주제를 등록한 이후 다른 탭으로 이동후 다시 돌아오면 화면에 등록된 관심주제가 나타나지 않는다. 그래서 관심주제를 나타내기 위한 과정을 진행 한다.
관심 주제 화면 요청시 기존에 관심 주제로 등록되었던 데이터를 조회 시키기 위한 로직 추가
package me.weekbelt.studyolle.settings;
@RequiredArgsConstructor
@Controller
public class SettingsController {
// 기존 코드 .....
@GetMapping("/settings/tags")
public String updateTags(@CurrentUser Account account, Model model) {
// 기존 코드 ....
Set<Tag> tags = accountService.getTags(account);
model.addAttribute("tags", tags.stream().map(Tag::getTitle).collect(Collectors.toList()));
return "settings/tags";
}
// 기존 코드 .....
}
관심 주제를 조회하기 위한 getTags 메소드 추가
package me.weekbelt.studyolle.account;
@Transactional
@RequiredArgsConstructor
@Service
public class AccountService implements UserDetailsService {
// 기존 코드 ......
public Set<Tag> getTags(Account account) {
Optional<Account> byId = accountRepository.findById(account.getId());
return byId.orElseThrow().getTags();
}
}
stringify를 유지하기 위해 tag.html 수정
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<!--head-->
<head th:replace="fragments.html::head"></head>
<body class="bg-light">
<!--네비게이션 바-->
<div th:replace="fragments.html::main-nav"></div>
<div class="container">
<div class="row mt-5 justify-content-center">
<div class="col-2">
<div th:replace="fragments.html :: settings-menu(currentMenu='tags')"></div>
</div>
<div class="col-8">
<div class="row">
<h2 class="col-sm-12">관심있는 스터디 주제</h2>
</div>
<div class="row">
<div class="col-12">
<div class="alert alert-info" role="alert">
참여하고 싶은 스터디 주제를 입력해 주세요. 해당 주제의 스터디가 생기면 받을 수 있습니다.
태그를 입력하고 콤마(,) 또는 엔터를 입력하세요.
</div>
<input id="tags" type="text" name="tags" th:value="${#strings.listJoin(tags, ',')}" // 수정
class="tagify-outside" aria-describedby="tagHelp"/>
</div>
</div>
</div>
</div>
<!-- footer -->
<div th:replace="fragments.html::footer"></div>
</div>
// 기존 script 코드 .......
</body>
</html>
참고: https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-JPA-%EC%9B%B9%EC%95%B1#
'스프링과 JPA 기반 웹 어플리케이션 개발 > 2부(관심 주제와 지역 정보)' 카테고리의 다른 글
37. 관심 주제 자동완성 (0) | 2020.04.22 |
---|---|
36. 관심 주제 삭제 (0) | 2020.04.22 |
34. 관심주제 등록하기 (0) | 2020.04.22 |
33. 관심 주제 도메인 (0) | 2020.04.22 |
32. 관심 주제와 지역 정보 관리 기능 미리보기 (0) | 2020.04.22 |