什么是“允许的”?在与行动/结果绑定的方法中

发布于 2024-12-11 05:10:25 字数 98 浏览 0 评论 0原文

我知道理论上人们可以在方法中放入他想要的内容,但我想知道该方法除了定义带有应该加载的下一页的字符串之外是否不应实现任何逻辑。

例如,将值放入闪存范围在概念上是否正确?

I know that theoretically one can put what he wants in the method, but I wanted to know if the method should not implement any logic other than defining a string with the next page that should be loaded.

For example, is it conceptually right to put values in the flash scope there?

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

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

发布评论

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

评论(2

忱杏 2024-12-18 05:10:25

绑定到操作的方法充当 MVC 三元组的“控制器”部分。所以我想说是的,这是通过应用程序放置与工作流程相关的内容的合适位置(例如在闪存范围中设置值)。

您可能应该避免将业务逻辑放在那里 - 这些事情最好留给单独的业务类。通过这种方式,您可以实现良好的关注点分离,使整个事情在未来更容易理解和改变。

Methods bound to actions act as 'controller' part of MVC triad. So I'd say yes, it's a proper place to put things concerning the workflow through your application (like setting values in flash scope).

You should probably refrain from placing business logic there - those things are best left to separate business classes. That way you achieve nice separation of concerns, making the whole thing much easier to understand and change in the future.

掩于岁月 2024-12-18 05:10:25

我不能说什么是允许的,但是当我实现“提交”按钮时,我总是遵循的设计模式是:

  1. 对所有有问题的表单参数进行验证。对于任何会产生问题的问题,请创建适当的 FacesMessage 对象。

  2. 如果创建了任何 FacesMessage 对象,则返回 null。

  3. 调用业务逻辑来应用数据。正确地说,这些应该是不同包中的不同对象。如果您要创建或编辑记录,则可以在此处完成。我的应用程序都使用 JPA 作为后端,因此 EntityManager 调用都在那里完成。

  4. 返回将导航到下一步的字符串(有时实际上也为空,具体取决于表单逻辑的工作方式。)。

我已经无数次使用过这种模式。

I can't say what is allowed, but when I implement a "submit" button the design pattern I invariably follow is:

  1. Do a validation pass on all the form parameters that are questionable. For any that would generate a problem, create the appropriate FacesMessage objects.

  2. If any FacesMessage objects were created, return null.

  3. Call the business logic to apply the data. Properly, these should be different objects in a different package. If you are creating or editing a record it is done here. My applications all use JPA for the back end, so the EntityManager calls are done there.

  4. Return the String that will navigate to the next step (sometimes that is actually null as well, depending on how the form logic works.).

I have used that pattern countless times.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文