我最近使用过Java EE,并且喜欢struts.xml的概念,我可以根据动作类的返回字符串来处理页面的重定向。
在PHP中,在我新开发的网站中,我试图遵循MVC标准,而没有使用互联网上的MVC框架。所以我创建了控制器,模型和视图(现在为空)。我唯一坚持的是当我在视图中提交表单(insert_product.php)时,我将需要创建另一个php页面来处理post数据并将它们传递给控制器。
无论如何避免创建这些页面并且可能有类似struts.xml的东西?即使我可以直接将数据发布到控制器类,这也不错。
答案 0 :(得分:1)
我在视图中提交表单
这是一个典型的场景,发生在程序员首次开始从其他开发领域开始的Web开发中。
您不在视图中提交表单。用户请求包含额外信息的新页面。
但请注意,用户对您的观点不在乎。用户的浏览器将获得一些代码,然后解释并生成页面。用户页面和您的视图(在此场景中的MVC上)是两个完全不同的东西!
用户向服务器发出的请求可能(或可能不包含)包含额外信息(POST / GET)。
也就是说,控制器应该获取信息。然后将其传递给模型,如果相关的话。
答案 1 :(得分:1)
请求周期为:
|
browser ---|---> Controller ---+
request |
^ | V
| |
| | Model
| |
| | |
+--------|------ View <------+
response
|
client | server
如您所见,MVC分离完全是服务器端的代码组织策略。您不需要单独的文件。任何GET或POST请求都由控制器处理,视图只返回响应(即HTML)。控制器如何处理传入请求以及哪个控制器处理哪些请求完全取决于您,它与任何特定文件无关。