【问题标题】:Model View Controller (MVC) info模型视图控制器 (MVC) 信息
【发布时间】:2015-01-19 12:33:56
【问题描述】:

如果我使用MVC模式来创建我的Spring项目,从View调用Controller会不会出错?

这个架构对吗?:

  • View 调用 Controller
  • 控制器执行操作并将数据结果放入模型中
  • 视图从模型中读取数据

编辑:

在我的索引 jsp 中有一个包含几类文章的菜单。我想将类别的名称传递给控制器​​。控制器调用 bean 的方法,该方法执行查询并将呈现的文章列表返回到数据库中。控制器将此列表放入模型中,视图从模型中读取此列表。

谢谢

【问题讨论】:

  • 这取决于您对“视图调用控制器”的定义。按照 MVC 习惯用法,视图直接引用控制器是“错误的”。像 HTML 视图中的表单之类的东西有一个调用 HTTP 端点的操作是正常的,该端点被控制器拦截。解释一下你的实际问题可能会更好......
  • 在我的索引 jsp 中有一个包含几类文章的菜单。我想将类别的名称传递给控制器​​。控制器调用 bean 的方法,该方法执行查询并将呈现的文章列表返回到数据库中。控制器将此列表放入模型中,视图从模型中读取此列表。

标签: spring spring-mvc jakarta-ee model-view-controller


【解决方案1】:

你所说的(在你的 cmets 中)并不是特别错误,但它没有意义。

在您构建视图时知道类别,然后由控制器角色整理所有信息并将其放入模型中使用模型调用视图之前。

或者通过用户交互选择类别。但是此时,JSP 已经结束了很长时间:响应已经提交并传输到浏览器。唯一的可能性是准备一个新请求(使用表单或使用 ajax),将此新请求发送到服务器,由控制器处理,控制器将数据整理成(新)模型并将其全部传递给一个视图

【讨论】:

  • 通过点击菜单栏的链接选择类别
  • @Alex 从这个意义上说,它是一个完全正常的视图 -> 控制器交互。但实际上你所拥有的是视图 -> 浏览器 -> 控制器而不是 jsp -> 控制器
  • 为什么说“jsp完蛋了很久”?我看过的每一本Spring书都是用jsp的。在我的国家,很多公司都使用 jsp 而不是 jsf。
  • @Alex:我并不是说 JSP 一般已被弃用。 JSP + JSTL 确实是一个稳固的平台。我的意思是当用户可以点击浏览器时,JSP 视图已经结束了他的工作。 JSP 在服务器上执行,用户稍后在客户端上单击。
  • 对不起,如果我没有正确理解你的话..但是我的英语说和写不太好
【解决方案2】:

我想你会在下面提到的文章中找到你的答案:

http://docs.spring.io/spring-framework/docs/2.5.3/reference/mvc.html

【讨论】:

  • 在我的索引 jsp 中有一个包含几类文章的菜单。我想将类别的名称传递给控制器​​。控制器调用 bean 的方法,该方法执行查询并将呈现的文章列表返回到数据库中。控制器将此列表放入模型中,视图从模型中读取此列表。
  • 参考这个特定的解决方案,它展示了如何使用表单通过 RequestMapping 将数据发送到控制器。这应该对你有帮助!! stackoverflow.com/questions/5590036/…
  • 我想说从 jsp 调用控制器是否通常是错误的
【解决方案3】:

取决于你打电话的意思。但是,是的,View 对控制器一无所知。它发送 HttpRequest,然后执行您所描述的机制。Spring 文档中有著名的模式,基本上是通过图表描述的项目符号。关于您的问题的重点是视图不调用控制器而是发送请求

【讨论】:

  • 在这里发布了同一篇文章!大声笑
  • 在我的索引 jsp 中有一个包含几类文章的菜单。我想将类别的名称传递给控制器​​。控制器调用 bean 的方法,该方法执行查询并将呈现的文章列表返回到数据库中。控制器将此列表放入模型中,视图从模型中读取此列表。
猜你喜欢
  • 1970-01-01
  • 2015-05-21
  • 2011-09-12
  • 2012-02-12
  • 1970-01-01
  • 2012-11-08
  • 2013-12-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多