Servlet Project 02 게시판 만들기 (상세 페이지, 수정)

Myung A Lee·2023년 3월 13일
0
post-thumbnail

Servlet Project : 게시판

230313

어려웠던 점

작성 중인 게시글의 인덱스를 어떻게 알 수 있을까

작성한 글을 바로 받아 게시글 상세페이지로 이동시키는 것은 어렵지 않았으나 내가 원하는 것은 파라메터로 각 값을 받아 출력하는 것 이 아니라 ArrayList에 저장한 값을 바로 가져오는 것이 목표였다. 생성되지도 않은 인덱스를 어떻게 가져올까 하다가 set할 경우 마지막 인덱스에 추가됨을 이용하여 .size()메서드를 사용하여 인덱스를 확인했다.

내가 원하는 파라메터를 이동시키는 것

위와 이어지는 문제인데 인덱스를 구했는데 이걸 어떻게 다음 페이지로 보낼지가 막막했다. 한참을 파라메터로 고민 하다가 구한 인덱스 값을 리턴하여 파라메터로 이동시켰다. req.setAttribute를 그렇게 많이 썼으면서 왜 파라메터로 보낼때 생각이 안났는지 허무 했다.

추가 구현 기능

  • 게시글 수정
    • 수정 버튼 클릭시 업데이트 페이지로 이동하고 업데이트 페이지로 해당 글의 내용이 로딩됨
    • 제목/내용 수정 후 수정 완료 버튼을 누르면 내용이 수정되고 수정한 글 내용을 확인할 수 있음
    • 만약 업데이트 페이지에서 취소를 누르면 수정 전 글의 내용으로 돌아가짐

수정한 기능

  • 게시글 상세 읽기 (수정)
    • writeForm을 통해서 만들어진 페이지가 글목록이 아니라 detail.jsp를 통해 작성한 글을 바로 확인할 수 있게 함
  • 페이지 이동 제외 기능 모두 버튼으로 통일
    • 페이지 이동과 기능의 구분

구현 화면

페이지 이동

기존 글 작성 후 바로 목록으로 들어 가는 것에서 해당글이 제대로 작성 되었는지 확인할 수 있도록 상세 작성 페이지로 이동 후 목록 버튼을 통해 게시글 목록으로 갈 수 있게 함

  • 게시글 작성 시 작성 버튼 클릭하면 상세 페이지로 이동

페이지 이동 링크 제외 기능 버튼으로 변경

게시글 수정

게시글을 수정 할 수 있도록 목록에서 수정 버튼, 게시글 상세페이지에서 수정 버튼을 각각 만들어 같은 수정 기능을 사용할 수 있게 함.

  • 수정 버튼 클릭 시 게시글의 내용을 불러와 제목과 내용을 수정 할 수 있도록 함
  • 취소 버튼 클릭시 수정한 내용이 사라지고 기존의 게시글 내용으로 돌아감

  • 수정 완료 버튼 클릭시 수정이 적용 됨

상세 코드

전체 코드

https://github.com/leemyunga/leema0927.git

주요 코드

게시글 작성 후 상세 페이지 이동

BoardModel.java

	public int write(String user_name, String subject, String content) {

		BoardBean bean = new BoardBean();
		
		bean.setUser_name(user_name);
		bean.setSubject(subject);
		bean.setContent(content);
		
		list.add(bean);
		
		int idx = list.size() - 1;
		return idx;
	}

수정 기능

BoardModel.java

// 수정 버튼 클릭시
	public BoardBean update(String idx) {
		
		BoardBean bean = new BoardBean();
		
		bean = list.get(Integer.parseInt(idx));
		
		return bean;
	}
	
	// 수정 완료 버튼 클릭 시 
	public BoardBean done(String idx, String subject, String content) {
		BoardBean bean = new BoardBean();
 		bean = list.get(Integer.parseInt(idx));
		bean.setSubject(subject);
		bean.setContent(content);
		
		list.set(Integer.parseInt(idx), bean);
		
		return list.get(Integer.parseInt(idx));
	}

0개의 댓글