[spring 팀프로젝트] - 웹사이트 제작 8. 이용 후기(게시판) -(2)작성

JINI·2022년 12월 8일
0
post-thumbnail

게시판 기능으로 인터셉터를 활용해 세션이 있는 사용자만
리뷰 작성/게시글 조회
가능하다.
입력칸이 비어있는 채로 글 등록하기 버튼을 클릭하면 입력하라는 경고창이 뜨고 비어있는 입력칸으로 포커스가 이동한다.
취소 버튼을 클릭하면 작성 중인 글이 초기화된다.


✂️글 작성


🧩게시글 작성


✔️세션이 있는 로그인 사용자만 가능

1. 내용은 10글자 이상 입력
2. 취소시 모든 입력칸 초기화

3. 시퀀스 생성


🖊️시퀀스란(sequence)?

유일한 값을 생성해주는 오라클의 객체로 일련번호 생성함으로써 기본키처럼 순차적으로 증가하는 칼럼을 헷갈리지 않고 손쉽게 insert 할수 있다.

📗오라클 sql

create sequence box_board_seq;

sql에 시퀀스를 생성해 주어야 차례대로 일련번호가 생성되어 해당 글이 몇 몇 번째인지 구분할 수 있다.

게시판

🎨jsp

<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방식으로 작성한 컨트롤러로 연결된다.


📕Controller

	@PostMapping("writeSave")
	public String writeSave(boardDTO dto, RedirectAttributes rs) {                   
		bs.writeSave(dto);
		rs.addFlashAttribute("result", "savesuccess");		
		return "redirect:review";
	}

addFlashAttribute으로 성공 메시지를 일회성으로 사용했다.


🖊️ addAttribute VS addFlashAttribute

addAttribute는 값을 지속적으로 사용
addFlashAttribute는 값을 일회성으로 사용


📕Service/serviceImpl

public void writeSave(boardDTO dto) ;
public void writeSave(boardDTO dto)  {
		try {
			mapper.writeSave(dto);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}	

📕mapper.java

public void writeSave(boardDTO dto) ;

📕mapper.xml

<insert id="writeSave">
		insert into box_board(list_num,writer,title,content)
		values(box_board_seq.nextval,#{writer},#{title},#{content})
</insert>

글 번호는 추가될 때마다 시퀀스 값이 증가하는 쿼리문을 작성한다.


profile
꾸준히 성장하는 개발자

0개의 댓글