SpringBoot
[springBoot] 구독정보 -뷰 렌더링/구독,구독취소기능구현
유쾌한고등어
2023. 1. 12. 13:44
구독정보 -뷰 렌더링/구독,구독취소기능구현
1. JSP 틀 만들기
// profile.jsp
...
<li>
<a href="javascript:subscribeInfoModalOpen(${dto.user.id});"> 구독정보
...
<div class="subscribe-list" id="subscribeModalList">
<!-- 유저 구독정보가 들어갈 자리 -->
</div>
2. JS에서 데이터 가져와 뿌려주기
// profile.js
// (2) 구독자 정보 모달 보기
function subscribeInfoModalOpen(pageUserId) {
$(".modal-subscribe").css("display", "flex");
$.ajax({ // 구독리스트
url: `/api/user/${pageUserId}/subscribe`,
dataType: "json"
}).done(res=>{
console.log(res);
res.data.forEach((u) => {
let item = getSubscribeModalItem(u);
$("#subscribeModalList").append(item);
});
}).fail(error=>{
console.log("실패",error)
})
}
function getSubscribeModalItem(u) {
let item = `
<div class="subscribe__item" id="subscribeModalItem-${u.id}">
<div class="subscribe__img">
<img src="/upload/${u.profileImageUrl}" onerror="this.src='/images/person.jpeg'" />
</div>
<div class="subscribe__text">
<h2>${u.username}</h2>
</div>
<div class="subscribe__btn">`;
if (!u.equalUserState) { // 로그인 유저와 모달에 뜬 유저가 동일인물이 아닐 때 버튼 생성
if (u.subscribeState) { // 동일 유저가 아닐 때, 해당 유저를 구독한 상태
item += `<button class="cta blue" onclick="toggleSubscribe(${u.id},this)">구독취소</button>`;
} else { // 동일 유저가 아닐 때, 해당 유저를 구독하지 않은 상태
item += `<button class="cta" onclick="toggleSubscribe(${u.id},this)">구독하기</button>`;
}
}
item += `
</div>
</div>`;
console.log(item)
return item;
}