上篇文章介紹了國內的模板技術Beetl,今天介紹下Twril模板技術,該技術被用於在ODL-Cardon版本及之後的YANG模板代碼生成中。Twirl是play默認的模板引擎,用Scala編寫。模板會被編譯成Scala函數。從所周知ODL採用的JAVA語言,想使Twril可用,還需要最終編譯成JAVA語言的JAR包。
看示例:
![模板技術之Twirl-構建你想要的一切](http://p2.ttnews.xyz/loading.gif)
項目目錄
模板文件hello.scal.txt默認必須放置在twirl目錄下,其內容如下:
![模板技術之Twirl-構建你想要的一切](http://p2.ttnews.xyz/loading.gif)
twril模板
具體的模板語法,這裡不作詳細介紹,從上面模板內容分析:
@(customer:Customer,orders:List[Order]):表示該模板接受兩個參數,分別是Customer對象和Order列表
@customer.name :表示獲取傳入customer實例的name屬性
上面說過,該模板使用scala編寫,需要編譯
由於我們使用的是JAVA方法,所以還需要編譯成class
這樣執行編譯後,在對應目錄下,則會生成class文件
hello.class
到這一部,則可以直接使用hello類進行模板操作,測試用例如下:
測試用例
核心方法為hello.render,這樣則會按模板定義規範輸出對應的內容
輸出
可能需要的依賴:
其餘可參考:https://www.playframework.com/documentation/2.6.x/ScalaTemplates
閱讀更多 SDN界的小學生 的文章