这对Spring专家们来说可能听起来很愚蠢,但是我不得不问: 您如何决定何时使用ModelAndView以及何时使用Model?
Spring
ModelAndView
Model
毕竟,我研究了我发现的最佳答案就是这个。它已经提到,ModelAndView是中的一种旧方法,而Model带有String返回值的是中的一种新方法Spring。
String
我的问题是,ModelAndView既然我们Model手头有旧的东西,该不该弃用?还是有任何需要使用ModelAndView的情况?
此外,没有人知道为什么要改ModelAndView到Model和String值View,和有什么好处?
View
我总是使用控制器方法返回的方法ModelAndView。仅仅因为它会使控制器方法变得更简洁。方法参数现在是严格的input参数。并且所有output相关数据都包含在方法返回的对象中。
input
output
这种ModelAndView风格似乎引起了不喜欢将输入参数更新为方法的人们的共鸣。坚持认为这将构成副作用,这是一种危险的模式,因为您无法可靠地预测该方法将要执行的操作- 它可能会在返回的对象中返回数据,或者可能会更新任何输入参数中的任何内容。
所以有些人仍然会继续喜欢ModelAndView。
新样式,带有Modelas方法参数和返回的字符串作为视图名称。似乎来自稍微不同的设计方法。在这里,模型对象被认为是传递给多个处理程序的事件或项目,然后再返回到呈现它们的视图。它使我想起在AWT / Swing世界中如何处理事件。该模型与多个处理程序可以在Model对象之上构建直到到达视图的方法更加一致。
因此,归根结底,似乎没有明确的理由批评或推广这两种方法。您应该使用与您的总体设计理念更一致的样式。
希望这可以帮助。