区分 JSF 中的模型和控制器

发布于 2024-11-29 16:13:40 字数 185 浏览 0 评论 0 原文

我想清楚地了解开发 JSF 应用程序的正确方法。 在我们的项目中,模型和控制器是同一个类,由 CDI bean 表示。我有点困惑这是否是一个好的做法。据我了解 MVC 模式,控制器应该处理用户操作(例如提交表单),模型应该包含业务逻辑和数据。或者他们在同一个班级可以吗?
另外,每个页面都应该有自己单独的控制器/模型(即这被认为是一个好的实践)吗?

I want to clearly understand the proper way of developing a JSF application.
In our project, the model and controller is the same class, represented by CDI bean. I'm sort of confused whether it's a good practice. As far as I understand MVC pattern, the controller should handle user actions (such as submitting form) and the model should contain business logic and data. Or is it OK, that they are in the same class?
Also, should every page have its own separate Controller/Model (i.e is it considered a good practice)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

伊面 2024-12-06 16:13:40

一般来说,最好有两层 - 一层包含 JSF 托管 Bean(可能由 CDI 管理),另一层包含与使用它们的 Web 框架无关的 Bean。

至于“控制器” - FacesServlet 可以被视为“前端控制器” 对于整个应用程序。

It is generally a better idea to have two layers - one with JSF managed beans (might be managed by CDI) and another one with beans that are agnostic of the web framework that is using them.

As for the "controller" - the FacesServlet can be viewed as the "front controller" for the entire application.

恋你朝朝暮暮 2024-12-06 16:13:40

JSF 控制器只是 UI 处理程序,它们不应该携带任何业务逻辑。通常还有更多的层(我在这里只包括与逻辑相关的层):

  1. UI 控制器 - 与 UI 紧密相关,因此与 MVC 服务层使用的技术紧密相关
  2. - 是业务逻辑的外观入口点,通常还管理事务,在某些情况下 - DTO/实体转换(如果需要)。它对您使用的 Web MVC 技术一无所知。
  3. 遵守域模型模式的业务逻辑(有时称为域服务)。

JSF controllers are just UI handlers, they shouldn't carry any business logic. Usually there are even more layers (I include here only layers that relate to logic):

  1. UI Controller - that is tightly tied to the UI and thus to the technology you use for MVC
  2. Service Layer - is a facade-entry point to the business logic, usually also manages transactions and in some cases - DTO/Entity transformation if this is required. It doesn't know anything about Web MVC technology you use.
  3. Business logic that obeys Domain Model pattern (sometimes called Domain Service).
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文