Spring Brush-Up

yoneeki·2022년 12월 8일
0
  • 스프링 레거시 형식 간단하게 복습!
    스프링은 잘 몰라서 본격적으로 공부하기 전에 지금까지 아는 부분만 한번 정리해보고 넘어가려 한다.

분석

URI 체크

  • 예를 들어서 주소가 oo/oooo/oooo/shop.do 인 경우
    webapp의 shop.jsp 뷰단과 연결되었을 가능성이 높다.

컨트롤러 찾기

  • @RequestMapping(".../shop.do")가 연결되어 있는 컨트롤러를 찾는다.
  • 보통 컨트롤러에서 벌어지는 일은,
    (1) shopService 를 @Autowired 로 가져온다 -> shopService는 보통 함수가 구현되어 있지 않고 shopServiceImpl이 shopService를 implements 한 뒤 자세하게 구현한다.
    (2) 컨트롤러는 shopService에서 가져온 함수에 @RequestMapping으로 메서드가 가공한 자료를 뿌리고 싶은 뷰단과 연결한다.
  • *@Autowired : 의존 객체 bean을 주입하는 어노테이션. 스프링의 의존성 주입(DI)과 연관된 기능.

검색 기능

  • 만약 jsp 뷰단에서(웹에서) 검색을 했다고 치자.
  • 검색에 대한 함수가 shopSelectList라고 친다면,
    shopSelectList(ShopVO shopVO) 라는 함수가 위에서 설명한 과정을 거쳐 정의되어 있을 것이다.
  • 컨트롤러에서는 이 함수를 이용해, 해당 함수가 검색어를 받아 조건에 맞게 가공한 자료를 Model 객체에 담고 뷰단에 뿌린다.
  • @ModelAttribute("vo")라면 뷰단에 ${vo.productName} 과 같은 형태로 뿌려질 것이다.
  • model.addAttribute("resultList", resultList) 라면 뷰단에서 테이블에 resultList 자료가 뿌려질 것이다.

정리

  • 결국 uri에 연결된 주소를 뷰단과 연결시킨 컨트롤러로 찾아가는 게 화면 분석의 첫 단계
  • 컨트롤러는 모델 객체에 함수를 통해 가공된 데이터를 담아 뷰단으로 뿌린다는 게 요점

Model 객체와 @ModelAttribute

Model

  • Model은 객체
  • Servlet에서 request.setAttribute()와 비슷한 기능을 수행
  • view 단에서 필요한 정보를 키값쌍으로 보내준다
  • ex) model.addAttribute("key", value)
    public void ShopList(@RequestParam String productName,
                    @RequestParam int productPrice,
                    Model model){
       ShopVO shopVO = new shopVO();
       shopVO.setProductName(productName);
       item.setProductPrice(productPrice);
       model.addAttribute("shopVO", shopVO);
    }

@ModelAttibute

  • @ModelAttribute는 모델 객체를 지원하는 어노테이션이다

  • public void shopList(@ModelAttribute ShopVO shopVO, Model model){
    	model.addAttribute("shopVO", shopVO);
    }
    
  • 보다 간단하게 표현할 수 있다.

profile
Working Abroad ...

0개의 댓글

관련 채용 정보