봄 MVC의 ModelAndView 모델이란?
이 기본 기능을 가지고 있다
protected ModelAndView handleRequestInternal(...) {
...
return new ModelAndView("welcomePage", "WelcomeMessage", message);
}
이것이 모델과 뷰를 반환하는 것을 알고 있습니다.는 그것을 있다.welcomePage
에, 은 「이러다」와 같은 것을 합니다.welcomepage.jsp
전화가 올 거예요.
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ 죠?WelcomeMessage
★★★★★★★★★★★★★★★★★」message
이 시나리오에서 모델은 어떻게 동작합니까?
모델은 뷰에 표시할 정보를 보관하는 자리 표시자를 제공합니다.위의 예시와 같이 문자열일 수도 있고 속성 묶음을 포함하는 개체일 수도 있습니다.
예 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!
new ModelAndView("welcomePage", "WelcomeMessage", message);
의 줄임말이다
ModelAndView mav = new ModelAndView();
mav.setViewName("welcomePage");
mav.addObject("WelcomeMessage", message);
웰컴 페이지의 ★★★★★★★★★★★★★★★★★.ViewResolver
in( 「설정」):.../WEB-INF/spring-servlet.xml
)는합니다( 「」 「」 「」 「」 「」addObject("WelcomeMessage", message)
거기서 모델이 활약합니다.
이 모든 것은 생성자에 대한 javadoc에 의해 설명됩니다.모델을 하나의 속성/값 쌍으로 채우는 편리한 생성자입니다.
그래서...
new ModelAndView(view, name, value);
는 다음과 같습니다.
Map model = ...
model.put(name, value);
new ModelAndView(view, model);
이 경우 메서드, 즉 ModelandView에 3개의 파라미터가 있습니다.
이 질문에 따르면 첫 번째 파라미터를 쉽게 이해할 수 있다.클라이언트에 표시되는 보기를 나타냅니다.
다른 두 매개 변수는 포인터와 홀더와 동일합니다.
이렇게 할 수 .
ModelAndView()보기, 포인터, 홀더);
포인터는 홀더에 있는 정보만 가리킵니다.
컨트롤러가 이 정보로 보기를 바인드하면 위의 프로세스에서 JSP 페이지의 [The Pointer]를 사용하여 [Holder]에 저장된 정보에 액세스하여 해당 정보를 클라이언트에 표시할 수 있습니다.
다음은 존경받는 프로세스를 시각적으로 나타낸 것입니다.
return new ModelAndView("welcomePage", "WelcomeMessage", message);
Welcome Message는 메시지의 변수 이름일 뿐입니다(데이터가 있는 실제 모델).기본적으로 여기에서는 welcome Page를 사용하여 모델을 바인딩합니다.모델(메시지)은 WelcomePage.jsp에서 WelcomeMessage로 사용할 수 있습니다.다음으로 간단한 예를 제시하겠습니다.
ModelAndView("hello","myVar", "Hello World!");
이 경우 모델은 단순한 문자열입니다(애플리케이션에서는 DB 또는 기타 소스에 대해 데이터를 가져온 POJO가 됩니다).myVar에 할당하고 있으며 뷰는 hello.jsp입니다.이제 myVar는 hello.jsp에서 사용할 수 있으며 표시용으로 사용할 수 있습니다.
보기에서는 다음과 같이 데이터에 액세스할 수 있습니다.
${myVar}
마찬가지로 Welcome Message 변수를 통해 모델에 액세스할 수 있습니다.
ModelAndView:이름 자체는 모델 및 뷰 데이터를 포함하는 데이터 구조임을 설명합니다.
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");
@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**
언급URL : https://stackoverflow.com/questions/5055358/what-is-model-in-modelandview-from-spring-mvc
'programing' 카테고리의 다른 글
스프링 데이터 JPA가 지정된 이름의 속성을 찾을 수 없습니다. (0) | 2023.03.16 |
---|---|
Node.js 웹 응용 프로그램에서 MongoDB 연결을 관리하는 방법은 무엇입니까? (0) | 2023.03.16 |
reactjs 앱에 부트스트랩 css 및 js를 포함하려면 어떻게 해야 합니까? (0) | 2023.03.16 |
TypeScript 캐스트 연산자 "as"의 ESlint 구문 분석 오류 "예상하지 않은 토큰" (0) | 2023.03.16 |
API 액션에 대한 Rails 4의 protect_from_forgy 건너뛰기 (0) | 2023.03.16 |