4

我是 JSP 和 Tiles 以及 Java 的新手。我们目前正在使用这些重新构建我们的网站,但我很困惑什么时候应该将某些东西放入视图准备器而不是来自控制器。

例如,我正在处理的当前页面将有一个用于分页的图块,包括内容类型(X of Y 内容类型)。我最初的计划是使用 View Preparer 来获取控制器(HashMap)发送的数据并为分页图块输出几个属性,但一位同事告诉我这应该在控制器中完成。

如果是这种情况,View Preparer 的意义何在?我只是有点困惑。我检查了 Tiles 文档,它们非常基本/无法使用。

有人可以给我一个 View Preparer 的正确用例吗?

4

1 回答 1

4

控制器用于执行业务或事务逻辑。也就是说,为了响应用户操作,应用程序需要执行一个或多个操作,然后决定呈现哪个视图。这就是为什么它被称为控制器,因为它“控制”应用程序的流程。随着控制器执行其工作,对数据的更改必须对用户可见。然而,准备显示的数据不是控制器的工作。只需确保已完成必要的操作并且数据可用。

视图,在这种情况下是您的 jsp 页面,然后将获取数据并显示它。据我了解,视图准备器可帮助您将视图的某些方面考虑在内,以便准备器可以完成可能必须在多个不同视图中完成的准备工作。

因此,准备菜单的文档中的示例是一个很好的用例。菜单有时是动态的,从某种意义上说,它取决于系统的状态,究竟向用户显示什么。假设您想在用户未登录时在菜单中显示登录链接,并在用户登录时从菜单中删除该链接。而不是将逻辑编码到必须显示菜单的每个页面中可以使用 ViewPreparer 生成实现任何必要逻辑的菜单。然后,该 View Preparer 可以与多个页面相关联。

更多地将其视为操纵数据以供查看而不是业务逻辑。

于 2009-05-15T22:18:30.360 回答