Quick Spring MVC问题:如果我没有返回模型,为什么我仍然可以通过响应呈现视图?

时间:2010-08-27 11:21:24

标签: java model-view-controller spring

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

或者我使用:

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

现在,设计的差异在哪里,其他我在第二个解决方案中不需要JSP。 但是我还能输出一个直接的权利吗?

也许我只需要更多的理解。希望你们有些人可以帮忙! 谢谢!

2 个答案:

答案 0 :(得分:2)

MVC 是关于关注的问题。因此,每个请求/响应交互都有三个组件。数据本身,显示数据的视图,以及作为木偶大师的控制器。

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

某些情况下,您可以直接从控制器中编写,让控制器决定视图和模型。在没有必要编写单独视图的情况下(如您指出的情况:文件输出),它非常有用。

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

之前我说程序因为视图负责呈现,但它不一定必须是视图的声明类型,就像JSP一样。当然,JSP将是99%的时间。

答案 1 :(得分:0)

是的,您可以输出任何内容类型。在这种情况下不要忘记返回null。