1

我最近使用过 Java EE,并且喜欢 struts.xml 的想法,我可以在其中根据操作类的返回字符串处理对页面的重定向。

在 PHP 中,在我的新开发站点中,我正在尝试遵循 MVC 标准,而无需使用 Internet 上的 MVC 框架。所以我创建了控制器、模型和视图(现在是空的)。我唯一真正陷入困境的是当我在视图中提交表单(insert_product.php)时,我需要创建另一个 php 页面来处理发布数据并将它们传递给控制器​​。

无论如何避免创建这些页面并且可能有类似 struts.xml 的东西?即使我可以将数据直接发布到控制器类,那也很好。

4

2 回答 2

1

请求周期为:

            |
browser  ---|--->  Controller  ---+
         request                  |
   ^        |                     V
   |        |
   |        |                   Model
   |        |
   |        |                     |
   +--------|------  View  <------+
         response
            |
  client    |       server

如您所见,MVC 分离完全是服务器端的代码组织策略。您不需要单独的文件。任何 GET 或 POST 请求都由控制器处理,视图只是返回响应(即 HTML)。控制器如何处理传入请求以及哪个控制器处理哪些请求完全取决于您,它与任何特定文件无关。

于 2012-11-22T05:29:38.437 回答
1

当我提交表单时

这是一个典型的场景,发生在程序员第一次从其他开发领域开始 Web 开发时。

您不在视图中提交表单。用户请求一个带有额外信息的新页面..

但是请注意,用户不会关心您的视图。用户的浏览器会得到一些代码,然后解释并生成一个页面。用户页面和你的视图(在这个场景中的 MVC 上)是两个完全不同的东西!

用户向您的服务器发出的请求可能(或可能不)包含额外信息(POST / GET)。

也就是说,控制器应该获取信息。如果相关,然后将其传递给模型。

于 2012-11-22T05:14:47.100 回答