ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Spring Controller Model model
    Spring 2021. 12. 21. 19:06

    Spring Model 객체

    Controller의 메서드는 Model이라는 타입의 객체를 파라미터로 받을 수 있다. 순수 JSP Servlet은 request.setAttribute()로 선언한 것을 Spring에서는 model.addAttribute로 대체할 수 있다.

    //JSP Servlet 방식
    request.setAttribute("member", member ); //Model에 데이터를 보관한다.
    String viewPath = "/WEB-INF/views/save-result.jsp";
    RequestDispatcher dispatcher = request.getRequestDispatcher(viewPath);
    dispatcher.forward(request. response);
    //Spring 방식
    @GetMapping
    public String members(Model model){
        List<Member> members = memberRepository.findAll();
        model.addAttribute("members",members);     // 생략 가능하다. 
        return "members";
    }

     

    model 추가를 직접 선언하지 않아도 파라미터만 선언해주면 자동으로 객체를 생성해준다. 

    스프링 MVC의 Controller는 Java Beans 규칙에 맞는 객체는 자동으로 화면에 전달해준다.
    JavaBeans 규칙에 맞는다는 것은 생성자가 없거나 빈 생성자를 가지며, getter/setter를 가진 클래스의 객체들을 의미한다. 전달될 때는 클래스명의 앞글자를 소문자로 처리하여 전달한다.

     

    Controller Model 객체를 이용한 Validation 처리

    Spring Controller Model 객체는 validation 처리에도 사용한다.

    //validation 처리에 사용되는 Model 객체
        @GetMapping("/members/new")
        public String createForm(Model model){
            model.addAttribute("memberForm", new MemberForm());    //validation 처리를 위해 빈 껍데기로 선언한다.
            return "members/createMemberForm";
        }

    'Spring' 카테고리의 다른 글

    @RestController  (0) 2022.01.06
    Spring @Valid와 BindingResult 파라미터  (0) 2021.12.21
    스프링 구조의 이해  (0) 2021.11.30
    MVC 프레임워크 생성  (0) 2021.11.28
    HTTPServletRequest, Response, HTTP-API  (0) 2021.11.25
Designed by Tistory.