具有以下基本功能
protected ModelAndView handleRequestInternal(...) {
...
return new ModelAndView("welcomePage", "WelcomeMessage", message);
}
我知道这将返回modelandView。我知道welcomePage
是我的视图名,所以这意味着像welcomepage.jsp
这样的东西将被调用。
但我对什么是Model part感到困惑。什么是WelcomeMessage
和message
以及模型在该场景中是如何工作的?
发布于 2011-02-20 13:25:51
new ModelAndView("welcomePage", "WelcomeMessage", message);
是以下的简写
ModelAndView mav = new ModelAndView();
mav.setViewName("welcomePage");
mav.addObject("WelcomeMessage", message);
查看上面的代码,您可以看到视图的名称是"welcomePage“。您的ViewResolver
(通常在.../WEB-INF/spring-servlet.xml
中设置)会将其转换为视图。代码的最后一行在模型(addObject("WelcomeMessage", message)
)中设置一个属性。这就是模型发挥作用的地方。
发布于 2011-02-20 13:23:19
这一切都由the constructor的javadoc来解释。它是一个方便的构造函数,可以用一个属性/值对填充模型。
所以..。
new ModelAndView(view, name, value);
等同于:
Map model = ...
model.put(name, value);
new ModelAndView(view, model);
发布于 2011-02-20 13:14:32
WelcomeMessage只是message (带数据的实际模型)的一个变量名。基本上,您在这里将模型与welcomePage绑定在一起。模型(消息)将以WelcomeMessage的形式在welcomePage.jsp中提供。下面是一个更简单的例子:
ModelAndView("hello","myVar", "Hello World!");
在本例中,我的模型是一个简单的字符串(在应用程序中,这将是一个POJO,其中包含从DB或其他源获取的数据)。我将它分配给myVar,我的视图是hello.jsp。现在,我可以在hello.jsp中使用myVar,我可以将其用于显示。
在视图中,您可以访问数据:
${myVar}
类似地,您将能够通过WelcomeMessage变量访问模型。
https://stackoverflow.com/questions/5055358
复制相似问题