ํฐ์คํ ๋ฆฌ ๋ทฐ
Project/Instagram
[spring] ํด๋ก ์ฝ๋ฉ 18 Follow - ํ๋ก์, ํ๋ก์ ๋ฆฌ์คํธ ์กฐํ
yeahajeong 2020. 4. 21. 14:45๋ฐ์ํ
ํ๋ก์, ํ๋ก์ ๋ฆฌ์คํธ๋ฅผ ์กฐํํ๋ ๊ฒ์ ๊ฐ์ธ ํ์ด์ง๋ฅผ ์กฐํํ ๋ ๋ณด์ฌ์ค์ผํ๊ธฐ ๋๋ฌธ์ PostsController์์ ์ฌ์ฉํ๊ฒ ๋๋ค.
Controller
PostsController
@Autowired
private IFollowService followService;
IFollowService ์๋์ฃผ์
//personal-list ์์ฒญ : ๊ฐ์ธ ๊ฒ์๋ฌผ ๋ณด์ด๋ ํ์ด์ง
@RequestMapping(value="/{id}", method=RequestMethod.GET)
public String personalList(@PathVariable String id, Model model, HttpSession session) throws Exception {
//๊ฐ์ธ ํ์ด์ง ์ฃผ์ธ ์ ๋ณด ๋ด๊ธฐ
UsersVO user = usersService.inquiryOfUserById(id);
//๋ก๊ทธ์ธํ ํ์ (=๋) ์ ๋ณด ๋ด๊ธฐ
Object object = session.getAttribute("login");
UsersVO loginUser = (UsersVO)object;
//๊ฐ์ธํ์ด์ง์ ์ ์ ๋ฒํธ ๊ฐ์ ธ์ค๊ธฐ
int userNo = user.getUserNo();
//๋ก๊ทธ์ธ ํ์ ์ ์ ๋ฒํธ ๊ฐ์ ธ์ค๊ธฐ
int loginUserNo = loginUser.getUserNo();
logger.info("ํ์ฌ ํ์ด์ง ์ฃผ์ธ์ ๋ฒํธ : " + userNo + ", ๋ก๊ทธ์ธ ์ ์ ์ ๋ฒํธ : " + loginUserNo);
//ํ๋ก์ฐ ๊ฐ์ฒด ์์ฑ
FollowVO follow = new FollowVO();
follow.setActiveUser(loginUserNo); //ํ๋๋
follow.setPassiveUser(userNo); //๋นํ๋๋
//ํ๋ก์ฐ ์ ๋ฌด ์ฒดํฌ
int followCheck = followService.isFollow(follow);
logger.info("ํ๋ก์ฐ ์ ๋ฌด ์ฒดํฌ : " + followCheck);
//ํ๋ก์ ๋ฆฌ์คํธ -> (๊ฐ์ธํ์ด์ง์์)๋๋ฅผ ํ๋ก์ฐํ๋ ๋๋ค ๋ชฉ๋ก
List<FollowVO> followerList = followService.selectPassiveUserList(userNo);
//ํ๋ก์๋ฆฌ์คํธ -> (๊ฐ์ธํ์ด์ง์์) ๋ด๊ฐ ํ๋ก์ฐ ํ๋ ๋๋ค ๋ชฉ๋ก
List<FollowVO> followingList = followService.selectActiveUserList(userNo);
//์ฌ์ฉ์ ์์ด๋๋ก ์ฌ์ฉ์ ๋ฒํธ(pk)๋ฅผ ์กฐํํด์ ๊ทธ ๋ฒํธ๋ก ๊ฒ์๋ฌผ ๊ฐ์ ธ์ค๊ธฐ
model.addAttribute("post", postsService.selectPostListById(id));
//์ฌ์ฉ์ ์์ด๋๋ก ํ์์ ๋ชจ๋ ์ ๋ณด ์กฐํํ๊ธฐ
model.addAttribute("user", user);
//ํ๋ก์ฐ ์ฒดํฌ ์ ๋ฌด
model.addAttribute("followCheck", followCheck);
//ํ๋ก์ ๋ฆฌ์คํธ
model.addAttribute("followerList", followerList);
//ํ๋ก์ ๋ฆฌ์คํธ
model.addAttribute("followingList", followingList);
return "post/personal-list";
}
//๊ฒ์๊ธ ์์ฑ ํ์ด์ง personal-write.jsp ์์ฒญ
@RequestMapping(value="/{id}/personal-write", method=RequestMethod.GET)
public String personalWrite(@PathVariable String id, Model model, HttpSession session) throws Exception {
//id๋ก ํ์์ ๋ชจ๋ ์ ๋ณด ์กฐํ
UsersVO user = usersService.inquiryOfUserById(id);
//๋ก๊ทธ์ธํ ํ์ (=๋) ์ ๋ณด ๋ด๊ธฐ
Object object = session.getAttribute("login");
UsersVO loginUser = (UsersVO)object;
//๊ฐ์ธํ์ด์ง์ ์ ์ ๋ฒํธ ๊ฐ์ ธ์ค๊ธฐ
int userNo = user.getUserNo();
//๋ก๊ทธ์ธ ํ์ ์ ์ ๋ฒํธ ๊ฐ์ ธ์ค๊ธฐ
int loginUserNo = loginUser.getUserNo();
logger.info("ํ์ฌ ํ์ด์ง ์ฃผ์ธ์ ๋ฒํธ : " + userNo + ", ๋ก๊ทธ์ธ ์ ์ ์ ๋ฒํธ : " + loginUserNo);
//ํ๋ก์ฐ ๊ฐ์ฒด ์์ฑ
FollowVO follow = new FollowVO();
follow.setActiveUser(loginUserNo); //ํ๋๋
follow.setPassiveUser(userNo); //๋นํ๋๋
//ํ๋ก์ฐ ์ ๋ฌด ์ฒดํฌ
int followCheck = followService.isFollow(follow);
logger.info("ํ๋ก์ฐ ์ ๋ฌด ์ฒดํฌ : " + followCheck);
//ํ๋ก์ ๋ฆฌ์คํธ -> (๊ฐ์ธํ์ด์ง์์)๋๋ฅผ ํ๋ก์ฐํ๋ ๋๋ค ๋ชฉ๋ก
List<FollowVO> followerList = followService.selectPassiveUserList(userNo);
//ํ๋ก์๋ฆฌ์คํธ -> (๊ฐ์ธํ์ด์ง์์) ๋ด๊ฐ ํ๋ก์ฐ ํ๋ ๋๋ค ๋ชฉ๋ก
List<FollowVO> followingList = followService.selectActiveUserList(userNo);
//์ฌ์ฉ์ ์์ด๋๋ก ์ฌ์ฉ์ ๋ฒํธ(pk)๋ฅผ ์กฐํํด์ ๊ทธ ๋ฒํธ๋ก ๊ฒ์๋ฌผ ๊ฐ์ ธ์ค๊ธฐ
model.addAttribute("post", postsService.selectPostListById(id));
//ํ์์ ์ ๋ณด
model.addAttribute("user", user);
//ํ๋ก์ฐ ์ฒดํฌ ์ ๋ฌด
model.addAttribute("followCheck", followCheck);
//ํ๋ก์ ๋ฆฌ์คํธ
model.addAttribute("followerList", followerList);
//ํ๋ก์ ๋ฆฌ์คํธ
model.addAttribute("followingList", followingList);
return "post/personal-write";
}
personal-list์ personal-write ๋ ํ์ด์ง์์ ์ฌ์ฉ๋๋ฏ๋ก ์์ ํด์ค๋ค.
Service
FollowService
@Override
public int isFollow(FollowVO follow) {
return followDAO.isFollow(follow);
}
@Override
public List<FollowVO> selectActiveUserList(int activeUser) {
return followDAO.selectActiveUserList(activeUser);
}
@Override
public List<FollowVO> selectPassiveUserList(int passiveUser) {
return followDAO.selectPassiveUserList(passiveUser);
}
- ํ๋ก์ฐ ์ฒดํฌ ์ ๋ฌด
- ํ๋ก์ ๋ฆฌ์คํธ ๊ฐ์ ธ์ค๊ธฐ
- ํ๋ก์ ๋ฆฌ์คํธ ๊ฐ์ ธ์ค๊ธฐ
View
personal-static
<c:if test="${followingList.size() <= 0 }">
<p>ํ๋ก์ํ ํ์์ด ์์ต๋๋ค.</p>
</c:if>
<c:if test="${followingList.size() > 0 }">
<c:forEach var="list" items="${followingList }">
<li class="follow-li">
<div class="profile-section">
<c:set var="len" value="${fn:length(list.profileName) }" />
<c:set var="filetype" value="${fn:toUpperCase(fn:substring(list.profileName, len-4, len)) }" />
<c:choose>
<c:when test="${(filetype eq '.JPG') or (filetype eq 'JPEG') or (filetype eq '.GIF') or (filetype eq '.PNG')}">
<img class="profile-photo" src="<c:url value='/user/profile/${list.passiveUser }'/>">
</c:when>
<c:otherwise>
<img class="profile-photo" src="<c:url value='/img/none-user-img.jpg'/>">
</c:otherwise>
</c:choose>
<p class="profile-id"><a href="<c:url value='/post/${list.passiveUserId }' />">${list.passiveUserId }</a></p>
<!-- <button class="following-list-btn">ํ๋ก์</button> -->
</div>
</li>
</c:forEach>
</c:if>
๋ฆฌ์คํธ ๋ชฉ๋ก์ ๋ชจ๋ฌ๋ก ์์ฑ. ํ๋ก์๊ณผ ํ๋ก์ ๊ฐ๊ฒ ๋ง๋ค์ด์ฃผ์๋ค.
๋ฐ์ํ
'Project > Instagram' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SpringBoot] ๊ฐ๋ฐํ๊ฒฝ ์ค์ (0) | 2020.07.14 |
---|---|
[spring] ํด๋ก ์ฝ๋ฉ19 Interceptor (1) | 2020.04.21 |
[spring] ํด๋ก ์ฝ๋ฉ17 Follow - ํ๋ก์ฐ, ์ธํ๋ก์ฐ (0) | 2020.04.20 |
[spring] ํด๋ก ์ฝ๋ฉ16 Follow - Model, Repository, Mapper, Test, Service, Controller (0) | 2020.04.20 |
[spring] ํด๋ก ์ฝ๋ฉ15 Post - ๊ฒ์๊ธ ์ญ์ (0) | 2020.04.20 |
๋๊ธ
๊ณต์ง์ฌํญ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ
- Total
- Today
- Yesterday
๋งํฌ
TAG
- mysql์ค์น
- tomcat์ค์น
- ์๋ฐ
- ๊ฐ๋ฐ
- ์๊ณ ๋ฆฌ์ฆ
- typeAliases
- ์คํ๋ง๋ถํธ ์๋์์ฑ
- Algorithm
- ์ดํด๋ฆฝ์ค ์ค์น
- ์๋ฃ๊ตฌ์กฐ
- ๊ฒ์ํ๋ง๋ค๊ธฐ
- ์ดํด๋ฆฝ์ค ํ๊ธ ์ธ์ฝ๋ฉ
- ๋ณ๋ช ์ฒ๋ฆฌ
- ์ ์ฒด๊ฒ์๋ฌผ ์กฐํ
- ์จ๋ฆฌ์์ค
- java jdk ์ค์น
- java ํ๊ฒฝ๋ณ์
- ๊ฒ์ํ ์ญ์
- Java
- ๊ฐ๋ฐํ๊ฒฝ๊ตฌ์ถ
- ๊ฒ์ํ ์กฐํ
- ๊ฒ์๋ฌผ ์ญ์
- ๊ฒ์๋ฌผ์กฐํ
- ๋ถํธ ์๋์์ฑ
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
๊ธ ๋ณด๊ดํจ