java - Quick Spring MVC 问题 : If I don't return a model, 为什么我仍然可以通过响应呈现 View ?

标签 java model-view-controller spring

我可以使用: return new ModelAndView(viewName, model);

或者我使用:

response.setContentType("text/plain");
response.getWriter().print("Hello World!");

现在在设计上有什么区别,除此之外我在第二个解决方案中不需要 JSP。 但是我也可以输出一个 flestream 对吧?

也许我只是需要多一点理解。希望你们中的一些人能帮忙! 谢谢!

最佳答案

MVC 是关于分离关注点的。因此,每个请求/响应交互都有三个组件。数据本身,显示数据的 View ,以及操纵傀儡的 Controller 。

这就是模型,所以如果它们适用,您应该使用其中的三个(例如,如果您有一个静态页面,它根本没有模型......它没有要显示的模型,只有HTML)。

某些情况下您可以直接从 Controller 编写,让 Controller 决定 View 和模型。在没有必要像您指出的情况那样编写单独的 View 的情况下,它很有用:文件输出。

无论如何,您都可以编程一个单独的 View 。类似于 FileOutputView 的东西,它接收要输出的文件或路径或流。这样决定渲染的类将与 Controller 分离。但在这种情况下,成为这样一个纯粹主义者几乎没有什么好处。

我之前说程序是因为 View 负责呈现,但它不一定是声明式 View ,如JSP。当然,JSP 将是 99% 的时间。

关于java - Quick Spring MVC 问题 : If I don't return a model, 为什么我仍然可以通过响应呈现 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3583632/

相关文章:

java - 正确使用 MVC 模式在 Swing 中使用数据填充 Jlist

java - 如何在未部署 webapp `/old` 的情况下在 tomcat 中从 `/new` 重定向到 webapp `/old`?

java - 将角色统计信息打印到控制台

c# - 一对多关系映射 : Cannot add or update a child row: a foreign key constraint fails

spring - 嵌套的异常是java.lang.NoClassDefFoundError : org/hibernate/ejb/HibernatePersistence

spring - 创建类路径资源中定义的名称为 'entityManagerFactory' 的 bean 时出错

java - 解压缩 TIFF 文件而不通过 BufferedImage

ruby-on-rails - rails : Set a common or global instance variable across several controller actions

php - ZF中什么是Layout,什么是View?我应该何时使用、使用谁的变量以及为什么?

java - 对 getSingleResult 使用可选