3、play中的模板引擎
1、模板格式
Play默認的模板引擎是一種基于scala的安全模板引擎,盡管模板引擎使用Scala作為表達式語言,但是非常簡單易學。參數類型使用后綴語法指定(例如: id:Long),泛型類型是使用[]符號(例如: list:java.util.List[String])。另外就是所有的錯誤信息可以在頁面上直接顯示。
模板文件的命名規則是*.scala.html,模板按著簡單的命名將頁面編譯成scala函數,如果創建了一個index.scala.html模板文件,則會生成一個具有render()方法的index類,就像jsp最終會被編譯成一個java文件一樣。
模板的基本使用:
1、模板中使用@符號來表示動態數據開始
2、使用傳遞的相應數據時需要先聲明
3、循環
4、判斷
5、重用代碼聲明
模板中可以使用java類中的方法,方法是static的
布局模板
https://www.playframework.com/documentation/2.7.x/JavaTemplateUseCases
2、帶有模板的依賴項注入
在模板頂部使用 @this(args) 語法聲明構造函數,可以將twirl模板生成為類而不是靜態對象。這意味著twirl模板可以直接注入到控制器中,并且可以管理它們自己的依賴項。例如:模板需要依賴Summarizer
聲明模板,使用@this注冊構造函數,依賴注入Summarizer
使用
3、通用模板用例
在twirl模板中,模板是簡單的函數,可以以任何方式組合。
先介紹一下布局:
主布局模板的視圖main.scala.html模板:
@(title: String)(content: Html) <!DOCTYPE html> <html><head><title>@title</title></head><body><section class="content">@content</section></body> </html>使用:
@main(title = "Home") {<h1>Home page</h1>}接下來介紹一下標簽的使用:
創建標簽:views/tags/notice.scala.html,這個標簽接收一個string類型值,然后根據值返回對應的html信息
使用標簽level
說一下包含,在一個模板中可以隨意引用其他模板,路徑要正確:
4、在模板引擎中添加對自定義格式的支持
添加自定義格式的支持需要注意兩個地方:
1、對格式執行文本集成過程
2、將文件擴展名與格式關聯。
那么如何具體實現呢?先說一下實現的基本原理。
首先需要實現play.twirl.api.format<T>接口,該接口具有兩個方法T raw(String text)和T escape(String text),分別用于集成靜態和動態模板部件。其中T類型必須是play.twirl.api.appendable<T>特性的子類型,該特性定義如何將部件連接在一起,play提供了一個play.twirl.api.bufferedContent<T>抽象類,該類使用StringBuilder生成其結果,并實現play.twirl.api.content接口,因此play知道如何將其序列化為HTTP響應體。
說一下具體的開發實現。
需要先寫一個自定義格式類,此類繼承BufferedContent<T>抽象類,之后寫一個轉換類,用來定義文本的集成過程,此類實現play.twirl.api.format接口。下邊舉一個例子:
文本集成過程定義好之后,需要將文件擴展名與格式進行關聯。在編譯整個應用程序源文件之前,構建過程會將模板編譯成.scala文件。TwirlKeys.templateFormats是定義文件擴展名和模板格式之間映射的類型的sbt設置。例如,如果要play使用自定義的HTML格式實現,則必須在build.sbt文件中寫入以下內容,以便將.scala.html文件與自定義的my.HtmlFormat格式相關聯:
總結
以上是生活随笔為你收集整理的3、play中的模板引擎的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: e3电脑主机配置(e3配置的电脑配置)
- 下一篇: 电脑配置单2022(电脑配置单2017)