게시판 기능으로 인터셉터를 활용해 세션이 있는 사용자만
리뷰 작성/게시글 조회 가능하다.
입력칸이 비어있는 채로 글 등록하기 버튼을 클릭하면 입력하라는 경고창이 뜨고 비어있는 입력칸으로 포커스가 이동한다.
취소 버튼을 클릭하면 작성 중인 글이 초기화된다.
✂️글 작성
✔️세션이 있는 로그인 사용자만 가능
1. 내용은 10글자 이상 입력
2. 취소시 모든 입력칸 초기화
3. 시퀀스 생성
유일한 값을 생성해주는 오라클의 객체로 일련번호 생성함으로써 기본키처럼 순차적으로 증가하는 칼럼을 헷갈리지 않고 손쉽게 insert 할수 있다.
📗오라클 sql
create sequence box_board_seq;
sql에 시퀀스를 생성해 주어야 차례대로 일련번호가 생성되어 해당 글이 몇 몇 번째인지 구분할 수 있다.
게시판
<form action="${contextPath}/board/writeSave" method="post">
<div class="review-space cf">
<input type="text" name="writer" id="writer"
value="${successLoginUser }" readonly> <input type="text"
name="title" id="title" placeholder="제목 입력">
<textarea name="content" id="reviewContent" cols="30"
rows="10" placeholder="작성해 주세요."></textarea>
<button type="reset" id="cancel-btn">취소</button>
<button type="submit" id="regist-btn">등록하기</button>
</div>
</form>
세션이 있는 작성자는 변경할 수 없도록 readonly
를 사용한다.
제목과 10글자 이상의 내용을 입력할 수 있고 빈 입력칸으로 등록하면 경고창이 뜬다.
해당 폼은 post방식으로 작성한 컨트롤러로 연결된다.
@PostMapping("writeSave")
public String writeSave(boardDTO dto, RedirectAttributes rs) {
bs.writeSave(dto);
rs.addFlashAttribute("result", "savesuccess");
return "redirect:review";
}
addFlashAttribute
으로 성공 메시지를 일회성으로 사용했다.
addAttribute
는 값을 지속적으로 사용
addFlashAttribute
는 값을 일회성으로 사용
public void writeSave(boardDTO dto) ;
public void writeSave(boardDTO dto) {
try {
mapper.writeSave(dto);
} catch (Exception e) {
e.printStackTrace();
}
}
public void writeSave(boardDTO dto) ;
<insert id="writeSave">
insert into box_board(list_num,writer,title,content)
values(box_board_seq.nextval,#{writer},#{title},#{content})
</insert>
글 번호는 추가될 때마다 시퀀스 값이 증가하는 쿼리문을 작성한다.