回答
它們彼此反相。
doLayout
用作extends
標記的一部分。擴展標籤指定您希望擴展哪個模板,並且doLayout
標籤指定您的代碼在擴展模板中的注入位置。
include
標記只是簡單地指定應在指定的點注入另一個模板。
所以,doLayout以類似的方式工作,除了doLayout標籤沒有指定要注入哪個模板。這是通過extends標籤完成的,並且意味着模板(通常包含頁眉,頁腳和常用css和javascript)可以進行擴展,而不需要了解擴展模板的任何信息。
Include
,只是代碼的啞注入。
如果你想實現的doLayout功能與包括(這是你會做它在PHP或類似的東西的方式),你可以做
#{include 'header.html'}
your template code
#{include 'footer.html'}
這將對每個頁面上被複制在您的模板中。而使用extends
和doLayout
可以讓你簡單地做
#{extends 'template.html'}
一個你的代碼注入到template.html通過的doLayout標籤管理。
擴展的方法是一個簡單的方法。此外,如果您決定更改頁面佈局,則只需更新一個文件,併爲內容位於擴展模板內的位置提供更大的靈活性。
從google-group我注意到extends (doLayout), include and a tag
之間的差異:
延伸,包括都差不多,差別主要在你 繞過變量
運用擴展,父模板提供了樣板路,並且孩子 模板提供了「身體」。例如,父模板可以呈現 頁眉和頁腳,並且子模板可以呈現頁面的主要內容 。通常,您可以在孩子的模板變量被讀取 和父模板如#{set title:'Pet shop' /}
或#{set showLoginBox:true /}
可以使用包括當你想要做一個 單親模板內同樣的事情多次應用。例如, #{include 'formStatusFields.html' /}
父模板中的變量可用於包含的模板。
如果您有一段從多個 不同的父模板執行的模板代碼,則應使用標記。您可以將變量傳遞給 標籤。例如 #{button label:'Ok', id:'ok-button'}
- 1. 什麼是產量和包含的模板之間的區別
- 2. ActiveQt包含哪些模塊?
- 3. Hibernate模板和JDBC模板的區別
- 4. Java Play 2 - 模板
- 5. Sencha Touch中doLayout()和doComponentLayout()之間的區別?
- 6. ERD中包含和包含關係的區別?
- 7. 不知道這些C#和Java代碼的區別在哪裏
- 8. java項目和java包的區別
- 9. 包含和塊之間的區別Jade
- 10. wpf中控制模板和數據模板之間的區別
- 11. Kentico中門戶模板和ASPX模板的區別
- 12. %(模數)和/(分)在java中的區別?
- 13. 將靜態文件內容包含到Play 2.4模板中
- 14. Maven Artefact包含哪些PowerMock.mockStaticPartial?
- 15. C++要包含哪些文件和庫?
- 16. 玉模板和小鬍子模板的比較和區別
- 17. ADO.NET包含哪些技術?
- 18. WHMCS中包含Drupal模板?
- 19. 龍捲風模板和Jinja2的區別
- 20. 模板include和jquery.load之間的區別?
- 21. doLayout()和ActionListener問題
- 22. 參考,模板和NuGet包之間的區別?
- 23. 哪些jar包含com.google.common.event.disuptor.EventDisruptor?
- 24. PHP包含哪些庫?
- 25. 控制器和視圖包含哪些模塊?
- 26. 函數模板的區別
- 27. 類或實例的`__dict__`包含哪些屬性,哪些不包含?
- 28. 「包含的do ... end」塊中不應包含哪些內容?
- 29. OSGI庫中可包含哪些內容
- 30. 包含標籤和包含函數有什麼區別?