当前位置: 首页 > 面试题库 >

什么时候在Spring中使用ModelAndView和Model?

明财
2023-03-14
问题内容

这对Spring专家们来说可能听起来很愚蠢,但是我不得不问:
您如何决定何时使用ModelAndView以及何时使用Model

毕竟,我研究了我发现的最佳答案就是这个。它已经提到,ModelAndView是中的一种旧方法,而Model带有String返回值的是中的一种新方法Spring

我的问题是,ModelAndView既然我们Model手头有旧的东西,该不该弃用?还是有任何需要使用ModelAndView的情况?

此外,没有人知道为什么要改ModelAndViewModelStringView,和有什么好处?


问题答案:

我总是使用控制器方法返回的方法ModelAndView。仅仅因为它会使控制器方法变得更简洁。方法参数现在是严格的input参数。并且所有output相关数据都包含在方法返回的对象中。

这种ModelAndView风格似乎引起了不喜欢将输入参数更新为方法的人们的共鸣。坚持认为这将构成副作用,这是一种危险的模式,因为您无法可靠地预测该方法将要执行的操作-
它可能会在返回的对象中返回数据,或者可能会更新任何输入参数中的任何内容。

所以有些人仍然会继续喜欢ModelAndView

新样式,带有Modelas方法参数和返回的字符串作为视图名称。似乎来自稍微不同的设计方法。在这里,模型对象被认为是传递给多个处理程序的事件或项目,然后再返回到呈现它们的视图。它使我想起在AWT
/ Swing世界中如何处理事件。该模型与多个处理程序可以在Model对象之上构建直到到达视图的方法更加一致。

因此,归根结底,似乎没有明确的理由批评或推广这两种方法。您应该使用与您的总体设计理念更一致的样式。

希望这可以帮助。



 类似资料:
  • 问题内容: 奇怪的是: 似乎或多或少被定义为。通过这种方式很容易产生错误: 一些fname意外地以else块结尾。修复很简单,我们应该改用它,但是从表面上看,这似乎是一种不错的pythonic方式,并且比“正确”的方式更具可读性。 由于字符串是不可变的,所以为什么字符串错误是什么技术细节?什么时候进行身份检查更好,什么时候进行平等检查更好? 问题答案: 据我所知,检查对象身份是否相等。由于没有强制

  • 问题内容: 我有一个将客户发送到另一个站点来处理付款的应用程序。客户之外的另一个站点在我们的服务器上调用一个页面,让我们知道付款的状态。被调用页面会检查付款应用程序提供的参数,并检查我们是否知道该交易。然后,它更新数据库以反映状态。这一切都无需与客户进行任何互动即可完成。 我个人选择将此功能实现为JSP,因为将文件拖放到文件系统中比编译和打包文件然后将条目添加到配置文件中要容易得多。 考虑到页面的

  • 问题内容: 何时使用和何时使用运算符? Java提供了两个选项来检查分配兼容性。什么时候使用? 问题答案: 我认为官方文档为您提供了答案(尽管以一种非常具体的方式): 此方法与Java语言instanceof运算符动态等效。 我认为这主要是指在运行时处理类型反射的代码中使用。特别是,我想说它的存在是为了处理您可能不事先知道要检查其成员资格的类的类型的情况(尽管这些情况可能很少)。 例如,您可以使用

  • 问题内容: 有人可以在何时使用以及在Hibernate中为我提供用例帮助吗? 问题答案: @Version用于通过Hibernate 实现乐观锁定,这意味着没有两个事务会在冲突时同时覆盖数据。 如果两个线程同时读取数据,并且两个线程都尝试使用不同的值更新同一行,则Hibernate将使用该字段来检查该行是否已更新。 在提交之前,每个事务都将验证没有其他事务已修改其数据。如果被修改,则最后一个事务遇

  • 问题内容: 作为经验丰富的Spring用户,我以为SpringIntegration在需要一些(JMS)消息传递功能)的最新项目中最有意义。在使用Spring Integration工作几天后,考虑到要配置一些请求- 响应(侦听不同的JMS队列)通信所必须配置的通道数量,仍然感觉到很多配置开销。 因此,我一直在寻找一些Camel与Spring Integration有何不同的背景信息,但是似乎那里

  • 您可以在整个web上读到AWT是旧的和不推荐的,而Swing是旧的,但比AWT新,应该尽可能优先于AWT。但是我如何确定什么时候可以用它的摆动挂件替换AWT组件呢?web中的几个示例仍然使用AWT组件,其中可以使用Swing。那么有没有一个明确的建议,从AWT中使用什么,什么不使用?我知道,当我使用官方不推荐的组件时,java编译器会给出一个简短的说明,例如: 将产生如下警告: 换句话说:及其子包