본문 바로가기

Spring Framework 개발 일지/Spring으로 게시판 만들기

FirstSpringBoard#5-3] 특정 게시글 조회 기능 구현

반응형

저번 시간에는 드디어 웹 페이지를 구현해보았습니다.

스프링 컨트롤러의 코드 수를 보면 이전의 방식에 비해 획기적으로 줄어든 것을 확인할 수 있을거에요.

스프링 MVC 컨트롤러에서는 command 객체를 이용해서 객체의 필드네임과 요청된 객체의 네임이 같다면 자동적으로

setter를 이용해서 매핑해줍니다.

그래서 이전에 많이 사용하셨을 User.serName( request.getParam("name") ) 이런 코드를 없애줍니다.

사실 Jsp에서 사용하던 <Jsp:userBean>과 비슷하다고 볼 수도 있어요.

오늘도 유익한 시간이 되었으면 좋겠습니다.


1. 특정 글 조회 기능

저번 시간에 전체 글 목록을 불러와서 화면에 뿌려주는 기능을 구현했었죠.

이제는 글을 선택하면 그 글의 내용을 불러오는 화면을 구현하겠습니다.

화면은 아래와 같아요.

우선 어떻게 글을 조회할 수 있을지 생각해봅니다.

우리가 게시글을 저장하는 board 테이블에는 각각의 튜플들의 고유한 primary key(기본키)가 있습니다.

이 키를 이용해서 조회하고자 하는 게시물을 특정할 수 있겠죠.


아래는 Sql문으로 특정 게시물을 선택한거죠.


그리고 BoardDAO를 열어보세요. 해당하는 기능을 하는 getBoard(int id)가 있습니다.

우리가 특정 게시물을 조회할려면 id가 필요하다는 것은 알았습니다.

그리고 전체글 목록 view에는 이미 각자 게시물의 고유한 번호를 가지고 있어요.

밑에 el로 board.id를 얻어오고 있죠?


해답은 <a>태그에 있습니다.

<a>태그로 url에 id정보를 담아서 컨트롤러에 보내주는 거죠.

그럼 컨트롤러에서 받은 id를 DAO의 getBoard(int id)에 파라미터로 넣어줘서 게시물 정보를 받아오고 이를 다시 jsp 파일로 보내주면

jsp 파일이 받은 정보를 화면에 뿌려주는 겁니다.

위의 a태그의 구성은 아래와 같아집니다.

<a href="boardRead.do?id=${board.id}">${board.subject}</a>

url에 id 값을 el을 통해서 넘겨줍니다.

아래는 동작을 간단한 그림으로 표현한 겁니다. 이제부터 구현해 볼게요.

아래의 메소드를 콘트롤러에 추가해주세요. boardRead.do url에 연결된 메소드입니다.


조회수를 올리는 부분을 유의해서 봐주세요. 일부러 후위연산자는 사용하지 않았어요.

index.jsp 코드는 올리지 않겠습니다.  <a>태그에 id를 넘겨주는 부분을 추가해주시면 됩니다.

아래는 글 조회하는 화면인 board_read.jsp의 소스코드입니다.

반환받은 객체를 화면에 뿌려주고있어요.

네 이걸로 특정 글을 조회하는 기능을 구현했습니다.
다음시간에는 수정과 삭제하는 기능을 구현할게요.


반응형