当前位置: 首页 > 面试题库 >

在MVC中,如何在控制器和模型之间划清界限?[关闭]

商高谊
2023-03-14
问题内容

我已经看到了将几乎所有与路由无关的代码传递给模型的代码。我还看到了代码,其中所有数据库持久性均由模型处理,但非DB处理由控制器处理。

哪种方法更好?


问题答案:

控制器和模型之间的界线实际上很清楚。

模型是您应用程序的心脏。它包含解决您的应用程序所针对的问题所需的业务/域逻辑。通常将模型分为其他几层,例如持久性,服务,域等。这是一个普遍的误解,认为模型只是数据库,这与普遍的误解是,数据库应该是ActiveRecord。

控制器(和视图)是表示层的一部分。控制器的唯一责任是接收和处理直接针对您的应用程序的用户输入,并将其委托给模型中的相应部分。而已。它不应处理复杂的应用程序流程或问题域的代码。模型不应该知道C或V,并且您应该能够将V和C换成其他表示层,而无需碰触M。



 类似资料:
  • 我想使用@SessionAttributes注释在SpringMVC中的两个控制器之间共享会话属性。 下面是我用来测试属性共享的一个简单代码:AController。JAVA a.jsp BController.java b.jsp 我期望的行为是转到 /aURL,myParam将被设置为0到99之间的随机值,然后该值将在两个控制器之间共享。 但是,会发生以下情况:我转到/a URL,myPara

  • 我对沉香酒很陌生...有人能告诉如何在thymeleaf html和spring控制器之间传递值吗...请为Thymeleaf-Spring-MVC提供好的教程... @requestmapping(value=“/owners”,method=requestmethod.get)公共字符串processFindForm(Owner Owner,BindingResult result,Model

  • 问题内容: ASP.NET Web API团队已决定将JSON.NET库用于模型绑定JSON数据。但是,“常规” MVC控制器仍使用劣质的JsonDataContractSerializer。这会导致解析日期出现问题,并使我非常头疼。 请参阅此作为参考:http : //www.devcurry.com/2013/04/json-dates-are-different-in-aspnet- mvc

  • 问题内容: 我有两个Angular控制器: 我无法使用内部,因为它是未定义的。但是,如果我尝试像这样传递它… 我得到一个错误。有谁知道如何做到这一点? 在做 也失败。 注意: 这些控制器彼此之间不嵌套。 问题答案: 在多个控制器之间共享变量的一种方法是创建服务并将其注入到要使用它的任何控制器中。 简单服务示例: 在控制器中使用服务: 这个博客对此进行了很好的描述(特别是第2课)。 我发现,如果要跨

  • 本文向大家介绍asp.net core mvc权限控制:在视图中控制操作权限,包括了asp.net core mvc权限控制:在视图中控制操作权限的使用技巧和注意事项,需要的朋友参考一下 在asp.net core mvc中提供了权限验证框架,前面的文章中已经介绍了如何进行权限控制配置,权限配置好后,权限验证逻辑自动就会执行,但是在某些情况下,我们可能需要在代码里或者视图中通过手工方式判断权限,我

  • spring MVC中controllin异常流的良好实践是什么? 假设我有一个DAO类,它将对象保存到数据库中,但如果违反了某些规则,例如名称太长、年龄太低,则抛出异常, 现在,如果我想保存名称超过10的A,它应该抛出异常。 但是有一个dataManipulator对象 和控制器 我希望在不抛出异常的情况下保留控制器(我听说这是一个很好的做法)。 但我的问题是,在这种情况下,A\u Data\u