[SPRING] ModelAndView의 Model은 Spring MVC에서 무엇입니까?
SPRINGModelAndView의 Model은 Spring MVC에서 무엇입니까?
이 기본 기능을 가짐
protected ModelAndView handleRequestInternal(...) {
...
return new ModelAndView("welcomePage", "WelcomeMessage", message);
}
나는 이것이 modelandView를 반환한다는 것을 알고있다. welcomePage는 내 viewname이므로 welcomepage.jsp와 같은 것을 호출한다는 것을 알고 있습니다.
그러나 모델 부분은 무엇인지 혼란 스럽습니다. WelcomeMessage 및 메시지 란 무엇이며 어떻게 그 시나리오에서 Model이 작동합니까?
해결법
-
==============================
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.새로운 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.그것은 모두 생성자에 대한 javadoc에 의해 설명됩니다. 하나의 속성 / 값 쌍으로 모델을 채우는 편리한 생성자입니다.
그것은 모두 생성자에 대한 javadoc에 의해 설명됩니다. 하나의 속성 / 값 쌍으로 모델을 채우는 편리한 생성자입니다.
그래서 ...
new ModelAndView(view, name, value);
다음과 같습니다.
Map model = ... model.put(name, value); new ModelAndView(view, model);
-
==============================
4.이 경우, 메소드 및 모델 및 뷰에 3 개의 매개 변수가 있습니다. 이 질문에 따르면 첫 번째 매개 변수는 질문에서 쉽게 이해할 수 있습니다. 클라이언트에 표시 될보기를 나타냅니다. 다른 두 매개 변수는 The Pointer and The Holder와 같습니다. 그러므로 당신은 이것을 이렇게 요약 할 수 있습니다.
이 경우, 메소드 및 모델 및 뷰에 3 개의 매개 변수가 있습니다. 이 질문에 따르면 첫 번째 매개 변수는 질문에서 쉽게 이해할 수 있습니다. 클라이언트에 표시 될보기를 나타냅니다. 다른 두 매개 변수는 The Pointer and The Holder와 같습니다. 그러므로 당신은 이것을 이렇게 요약 할 수 있습니다.
ModelAndView (뷰, 포인터, 홀더);
포인터는 The Holder의 정보를 가리키고 있습니다.
컨트롤러가이 정보로 뷰를 바인드하면 해당 프로세스에서 JSP 페이지의 포인터를 사용하여 홀더에 저장된 정보에 액세스하여 해당 존중 정보를 클라이언트에 표시 할 수 있습니다. 존중받는 과정을 시각적으로 묘사 한 그림입니다.
return new ModelAndView("welcomePage", "WelcomeMessage", message);
-
==============================
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.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.
@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**
from https://stackoverflow.com/questions/5055358/what-is-model-in-modelandview-from-spring-mvc by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring XML에서 기본 속성 값을 지정하는 방법이 있습니까? (0) | 2019.01.07 |
---|---|
[SPRING] Spring 3 Web MVC 시작하기 - 모든 것을 설정하기 (0) | 2019.01.07 |
[SPRING] Spring @PostConstruct 대 init-method 속성 (0) | 2019.01.07 |
[SPRING] HttpSecurity, WebSecurity 및 AuthenticationManagerBuilder (0) | 2019.01.07 |
[SPRING] Stateless 세션 빈을 통해 Stateful 세션 빈을 사용할 때? (0) | 2019.01.07 |