日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

3、play中的模板引擎

發布時間:2023/12/3 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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中的模板引擎的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。