14일차 게시글상세보기/글쓰기페이지
findAll 리턴값은??? Post
★하나의 object안에 여러가지 모델을 담아서 응답해주는 연습을 해야한다!!!!!!!!!!
jpa에서는 하나의 object리턴해주면 알아서 join해서 post,user같이 준다!!!!
jpa에서의 이 기술 알기 전까지는 dto를 만들어서 한번에 리턴하게 해줬었다!!!!!!!!!
댓글은??? user가 쓰고, post와도 연관관계가 있다
하나의 post 여러개 댓글(1:N관계) 즉 댓글에 post에 대한 FK키가 있어야한다.
POST select할때 List<coment> select해오게 할 수 있다.
<지난시간 복습>
▶게시글 상세보기 페이지 만들자! 먼저 PostController에서 Controller부터 만들자
키값인 postEntity에 id로 찾은 postEntity 객체를 넣어두자
상세보기 페이지
기본 디자인은 다음과 같다
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file="../layout/header.jsp"%>
<div class="container">
<a href="#" class="btn btn-warning">수정</a>
<form action="#" method="post" style="display:inline-block">
<button id="btn-delete" class="btn btn-danger" type="submit">삭제</button>
</form>
<br /><br />
<div>
글 번호 : 1</span> 작성자 : <span><i>유저네임 </i></span>
</div>
<br />
<div>
<h3>제목입니다~~~~~~~~~~~~~~~~~~~~~</h3>
</div>
<hr />
<div>
<div>내용입니다~~~~~~~~~~~~~~~~~~~~~</div>
</div>
<hr />
<div class="card">
<form>
<div class="card-body">
<textarea id="reply-content" class="form-control" rows="1"></textarea>
</div>
<div class="card-footer">
<button type="button" id="btn-reply-save" class="btn btn-primary">등록</button>
</div>
</form>
</div>
<br />
<div class="card">
<div class="card-header"><b>댓글 리스트</b></div>
<ul id="reply-box" class="list-group">
<li id="reply-1" class="list-group-item d-flex justify-content-between">
<div>댓글입니다</div>
<div class="d-flex">
<div class="font-italic">작성자 : 홍길동 </div>
<button class="badge">삭제</button>
</div>
</li>
</ul>
</div>
<br/>
</div>
<%@ include file="../layout/footer.jsp"%>
결과는???
수정,삭제에 대한 인증=>session이 있어야함
로그인 안되었다면 다음과 같이, 수정,삭제 버튼이 안뜬다
권한부여!!! session의 id확인하면 인증,권한부여 동시에 가능!!
위와 같이 작성하면, 내가 ssar로 로그인했다면 cos가 작성한 글에 들어가면 수정,삭제 버튼이 보이지 않는다
위에는 프론트에서 1차로 막은거!!
이제 서버에서 막아야한다. Controller
게시글 삭제하기 Controller만들자!!!!!!!
이때, 인증된 사용자인지, 글 삭제할 권한이 있는지 확인하는 로직이 필요하다!!
<내가 작성한 코드>
질문답하기!!!!!!!!!! 파싱이란?????????
<강사님 코드>
위에 로직은 테스트해보자!! id=7이라고 하면? 아래 로직에서 else에 해당해서 삭제 실패라는 alert가 뜸
▶글쓰기 Form만들자
★과제 (글쓰기 페이지, 글쓰기 저장!!!!!)