gpt4 book ai didi

templates - Grails:模板与 TagLib。

转载 作者:行者123 更新时间:2023-12-03 06:39:35 26 4
gpt4 key购买 nike

在 Grails 中, View 层有两种模块化机制:TemplateTagLib

当我编写自己的 Grails 应用程序时,当我需要编写 UI 组件时,我经常面临同样的问题:我需要使用模板还是 TagLib?

在网上搜索后,我没有找到很多关于此设计决策的最佳实践或经验法则,所以你能帮助我并告诉我:

  1. 这两种机制的主要区别是什么?
  2. 在哪些情况下,您会使用 TagLib 而不是模板(反之亦然)?

最佳答案

肯定存在一些重叠,但以下是需要考虑的几件事。一种思考方式是,Template 就像是方法级别的复用,而 TagLib 更方便 API 级别的复用。

  • 模板非常适合您必须设置特定显示格式的内容。例如,如果您想以特定方式显示域对象,通常在模板中更容易做到这一点,因为您基本上只是用一些 .它是可重用的,但我认为它的可重用性有点有限。 IE。如果您有模板,您会在几个页面中使用它,而不是在数百页中使用它。

  • 另一方面,标签库是一个较小的功能单元,但您更有可能在很多地方使用它。在其中您可能会连接字符串,因此如果您希望创建一百行 HTML,则它们不太方便。标签库允许的一个关键功能是能够注入(inject)服务/与服务交互。例如,如果您需要一段代码来调用身份验证服务并显示当前用户,则只能在 TagLib 中执行此操作。在这种情况下,您不必担心将任何内容传递给 taglib - taglib 会从服务中找出它。您也可能在许多页面中使用它,因此拥有不需要参数的标记库会更方便。

  • 还有几种标记库,包括允许的标记库你迭代某些东西 body ,有条件等等——那就是使用模板实际上不可能。正如我上面所说,精心设计的taglib库可用于创建可重复使用的 API,让您的 GSP代码更具可读性。在同一个 *taglib.groovy 中,您可以有多个标记定义,因此这是另一个区别 - 您可以将它们全部分组到一个位置,然后从一个标记库调用到另一个标记库。

此外,请记住,您可以从标记库内部调用模板,也可以使用模板调用标记库,以便您可以根据需要进行混合和匹配。

希望这能让您明白一点,尽管实际上很多内容是哪种构造更方便编码以及它被重用的频率。

关于templates - Grails:模板与 TagLib。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1743441/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com