Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在';Java游戏';?_Java_Templates_Playframework - Fatal编程技术网

在';Java游戏';?

在';Java游戏';?,java,templates,playframework,Java,Templates,Playframework,使用doLayout扩展时,只能有一个子模板,但可以包含多个子模板 区别是什么,最佳实践是什么?它们是一种相反的关系 doLayout用作extends标记的一部分。extends标记指定要扩展的模板,而doLayout标记指定代码在扩展模板中的插入位置 include标记只是指定应在指定点注入另一个模板 因此,doLayout的工作方式与include类似,只是doLayout标记没有指定要注入的模板。这是由extends标记完成的,这意味着模板(通常包含页眉、页脚和常见的css和javasc

使用
doLayout
扩展时,只能有一个子模板,但可以
包含多个子模板


区别是什么,最佳实践是什么?

它们是一种相反的关系

doLayout
用作
extends
标记的一部分。extends标记指定要扩展的模板,而
doLayout
标记指定代码在扩展模板中的插入位置

include
标记只是指定应在指定点注入另一个模板

因此,doLayout的工作方式与include类似,只是doLayout标记没有指定要注入的模板。这是由extends标记完成的,这意味着模板(通常包含页眉、页脚和常见的css和javascript)可以扩展,而不需要知道任何关于扩展它的模板的信息

Include
,只是一个愚蠢的代码注入

如果您想通过includes实现doLayout功能(这是您在PHP或类似的东西中实现的方式),您可以这样做

#{include 'header.html'}
your template code
#{include 'footer.html'}
这必须在模板中的每个页面上复制。而使用
扩展
doLayout
只需

#{extends 'template.html'}
代码注入template.html的位置由doLayout标记管理

扩展方法只是一种更简洁的方法。此外,如果您决定更改页面布局,您只需更新一个文件,并在扩展模板中的内容位置上提供更大的灵活性。

从中我注意到
扩展(doLayout)、包含和标记之间的差异:

扩展和包含是相似的,区别主要在于 传递变量

使用extend,父模板提供样板文件,子模板提供子模板 模板提供了“主体”。例如,父模板可以呈现 页眉和页脚,子模板可以呈现 这一页。通常在子模板中设置要读取的变量 并应用于父模板中,例如
{set title:'Pet shop'/}
{set
showLoginBox:true/}

当您想在同一时间内多次执行相同的操作时,可以使用include 单亲模板。例如
{include'formStatusFields.html'/}
父模板中的变量可用于包含的模板

如果有一段模板代码是从多个 不同的父模板,应该使用标记。您可以将变量传递给 标签。如
{按钮标签:'Ok',id:'Ok-button'}