복붙노트

[SPRING] ModelAndView의 Model은 Spring MVC에서 무엇입니까?

SPRING

ModelAndView의 Model은 Spring MVC에서 무엇입니까?

이 기본 기능을 가짐

protected ModelAndView handleRequestInternal(...) {
    ...
    return new ModelAndView("welcomePage", "WelcomeMessage", message);
}

나는 이것이 modelandView를 반환한다는 것을 알고있다. welcomePage는 내 viewname이므로 welcomepage.jsp와 같은 것을 호출한다는 것을 알고 있습니다.

그러나 모델 부분은 무엇인지 혼란 스럽습니다. WelcomeMessage 및 메시지 란 무엇이며 어떻게 그 시나리오에서 Model이 작동합니까?

해결법

  1. ==============================

    1.모델은 뷰에 표시하려는 정보를 저장할 자리 표시자를 제공합니다. 위의 예제에있는 문자열 일 수도 있고 여러 속성이 포함 된 개체 일 수도 있습니다.

    모델은 뷰에 표시하려는 정보를 저장할 자리 표시자를 제공합니다. 위의 예제에있는 문자열 일 수도 있고 여러 속성이 포함 된 개체 일 수도 있습니다.

    예제 1

    당신이 가지고 있다면...

    return new ModelAndView("welcomePage","WelcomeMessage","Welcome!");
    

    ... 그러면 메시지를 표시하는 JSP에서 다음을 수행합니다.

    Hello Stranger! ${WelcomeMessage} // displays Hello Stranger! Welcome!
    

    예제 2

    당신이 가지고 있다면...

    MyBean bean = new MyBean();
    bean.setName("Mike!");
    bean.setMessage("Meow!");
    
    return new ModelAndView("welcomePage","model",bean);
    

    ... 당신의 JSP에서, 당신은 할 수 있습니다 : -

    Hello ${model.name}! {model.message} // displays Hello Mike! Meow!
    
  2. ==============================

    2.새로운 ModelAndView ( "welcomePage", "WelcomeMessage", message);

    새로운 ModelAndView ( "welcomePage", "WelcomeMessage", message);

    ~에 속한다.

    ModelAndView mav = new ModelAndView();
    mav.setViewName("welcomePage");
    mav.addObject("WelcomeMessage", message);
    

    위의 코드를 보면보기 이름이 "welcomePage"임을 알 수 있습니다. ViewResolver (일반적으로 ... / WEB-INF / spring-servlet.xml에서 설정)는이를 View로 변환합니다. 코드의 마지막 줄은 모델의 속성 (addObject ( "WelcomeMessage", message))을 설정합니다. 그것이 모델이 작동하는 곳입니다.

  3. ==============================

    3.그것은 모두 생성자에 대한 javadoc에 의해 설명됩니다. 하나의 속성 / 값 쌍으로 모델을 채우는 편리한 생성자입니다.

    그것은 모두 생성자에 대한 javadoc에 의해 설명됩니다. 하나의 속성 / 값 쌍으로 모델을 채우는 편리한 생성자입니다.

    그래서 ...

       new ModelAndView(view, name, value);
    

    다음과 같습니다.

       Map model = ...
       model.put(name, value);
       new ModelAndView(view, model);
    
  4. ==============================

    4.이 경우, 메소드 및 모델 및 뷰에 3 개의 매개 변수가 있습니다. 이 질문에 따르면 첫 번째 매개 변수는 질문에서 쉽게 이해할 수 있습니다. 클라이언트에 표시 될보기를 나타냅니다. 다른 두 매개 변수는 The Pointer and The Holder와 같습니다. 그러므로 당신은 이것을 이렇게 요약 할 수 있습니다.

    이 경우, 메소드 및 모델 및 뷰에 3 개의 매개 변수가 있습니다. 이 질문에 따르면 첫 번째 매개 변수는 질문에서 쉽게 이해할 수 있습니다. 클라이언트에 표시 될보기를 나타냅니다. 다른 두 매개 변수는 The Pointer and The Holder와 같습니다. 그러므로 당신은 이것을 이렇게 요약 할 수 있습니다.

    ModelAndView (뷰, 포인터, 홀더);

    포인터는 The Holder의 정보를 가리키고 있습니다.

    컨트롤러가이 정보로 뷰를 바인드하면 해당 프로세스에서 JSP 페이지의 포인터를 사용하여 홀더에 저장된 정보에 액세스하여 해당 존중 정보를 클라이언트에 표시 할 수 있습니다. 존중받는 과정을 시각적으로 묘사 한 그림입니다.

    return new ModelAndView("welcomePage", "WelcomeMessage", message);
    

  5. ==============================

    5.Well, WelcomeMessage는 메시지의 변수 이름입니다 (데이터가있는 실제 모델). 기본적으로 모델을 welcomePage로 바인딩합니다. Model (메시지)는 welcomePage.jsp에서 WelcomeMessage로 사용할 수 있습니다. 다음은 더 간단한 예입니다.

    Well, WelcomeMessage는 메시지의 변수 이름입니다 (데이터가있는 실제 모델). 기본적으로 모델을 welcomePage로 바인딩합니다. Model (메시지)는 welcomePage.jsp에서 WelcomeMessage로 사용할 수 있습니다. 다음은 더 간단한 예입니다.

    ModelAndView("hello","myVar", "Hello World!");
    

    이 경우, 내 모델은 간단한 문자열입니다 (응용 프로그램에서는 DB 또는 다른 소스에 대해 데이터를 가져온 POJO가됩니다). 나는 그것을 myVar에 할당하고, 내 의견은 hello.jsp입니다. 자, myVar는 hello.jsp에서 사용할 수 있으며,이를 디스플레이에 사용할 수 있습니다.

    보기에서 데이터에 액세스 할 수 있습니다.

    ${myVar}
    

    마찬가지로 WelcomeMessage 변수를 통해 모델에 액세스 할 수 있습니다.

  6. ==============================

    6.ModelAndView : 이름 자체는 Model 및 View 데이터가 포함 된 데이터 구조라고 설명합니다.

    ModelAndView : 이름 자체는 Model 및 View 데이터가 포함 된 데이터 구조라고 설명합니다.

    Map() model=new HashMap(); 
    model.put("key.name", "key.value");
    new ModelAndView("view.name", model);
    
    // or as follows
    
    ModelAndView mav = new ModelAndView();
    mav.setViewName("view.name");
    mav.addObject("key.name", "key.value");
    

    모델에 단일 값만 포함 된 경우 다음과 같이 작성할 수 있습니다.

    ModelAndView("view.name","key.name", "key.value");
    
  7. ==============================

    7.

    @RequestMapping(value="/register",method=RequestMethod.POST)
       public ModelAndView postRegisterPage(HttpServletRequest request,HttpServletResponse response,
               @ModelAttribute("bean")RegisterModel bean)
       {
           RegisterService service = new RegisterService();
           boolean b = service.saveUser(bean);
    
           if(b)
           {
               return new ModelAndView("registerPage","errorMessage","Registered Successfully!");
           }
           else
           {
               return new ModelAndView("registerPage","errorMessage","ERROR!!");
           }
       }
    
    
    
    /*  "registerPage" is the .jsp page -> which will viewed.
    /* "errorMessage" is the variable that could be displayed in page using -> **${errorMessage}**
    /* "Registered Successfully!" or "ERROR!!" is the message will be printed based on **if-else condition**
    
  8. from https://stackoverflow.com/questions/5055358/what-is-model-in-modelandview-from-spring-mvc by cc-by-sa and MIT license