Они как бы обратны друг другу.
doLayout
используется как часть тега extends
.Тег extends указывает, какой шаблон вы хотите расширить, а тег doLayout
указывает, где в расширенном шаблоне вводится ваш код.
Тег include
просто указывает, что другой шаблон должен быть введен в точкеуказанный.
Таким образом, doLayout работает аналогичным образом, за исключением того, что тег doLayout не указывает, какой шаблон вводится.Это делается с помощью тега extends и означает, что шаблон (который обычно содержит верхние и нижние колонтитулы и общий CSS и JavaScript) может быть расширен без необходимости знать что-либо о шаблоне, который его расширяет.
Include
, это просто глупая инъекция кода.
Если вы хотите реализовать функциональность doLayout с помощью include (и именно так вы бы это делали в PHP или чем-то подобном), вы могли бы сделать
#{include 'header.html'}
your template code
#{include 'footer.html'}
Это должно быть воспроизведено на каждой странице вашего шаблона.Принимая во внимание, что использование extends
и doLayout
позволяет вам просто делать
#{extends 'template.html'}
И где ваш код вводится в шаблон. Html управляется тегом doLayout.
Подход extendsэто просто аккуратный способ.Кроме того, если вы решите изменить макет своей страницы, вам нужно обновить только один файл, и это даст вам большую гибкость в отношении того, где ваш контент находится внутри расширенного шаблона.