2022_03_01 - oneso123456789/2022 GitHub Wiki

other

10.2.3 조회 처리와 테스트 p217

등록처리와 유사하게 조회 처리도 BoardController를 이용해서 처리할 수 있음
특별한 경우가 아니라면 조회는 GET 방식으로 처리하므로, @GetMapping을 이용함

com.crow.controller.BoardController 클래스의 일부

    @GetMapping("/get")
    public void get(@RequestParam("bno") Long bno, Model model) {
        
        
        log.info("BoardController /get");
        model.addAttribute("board", service.get(bno));
    }

BoardController의 get() 메서드에는 bno 값을 좀 더 명시적으로 처리하는 @RequestParam을 이용해서 지정함
(파라미터 이름과 변수 이름을 기준으로 동작하기 때문에 생략해도 무방함)
또한 화면 쪽으로 해당 번호의 게시물을 전달해야 하므로 Model을 파라미터로 지정함

조회에 대한 테스트 코드는 아래와 같이 작성

com.crow.controller.BoardControllerTests 클래스의 일부

    @Test
    public void testGet() throws Exception{
        
        log.info(mockMvc.perform(MockMvcRequestBuilders.get("/board/get")
                .param("bno", "51"))
                .andReturn()
                .getModelAndView().getModelMap());
    }

작성중 mapping을 찾을수 없다는 오류가 야기됨 메소드를 빈 메서드로 선언해 준후 어노테이션부터 선언해주자

특정 게시물을 조회할 때 반드시 'bno'라는 파라미터가 필요하므로 param()을 통해서 추가하고 실행함

파라미터가 제대로 수집되었는지 확인하고 SQL의 처리결과를 확인할 수 있음
마지막에는 Model에 담겨 있는 BoardVO 인스턴스의 내용을 살펴볼 수 있음