jfinal Enjoy模板語言

2021-09-24 13:22:53 字數 2755 閱讀 9084

1.表示式

* 算術運算: +   -   *   /   %   ++   --

* 比較運算: >  >=   <   <=  ==   !=  (基本用法相同,後面會介紹增強部分)

* 邏輯運算: !   &&   ||

* 三元表示式: ? :

* null 值常量: null

* 字串常量: "jfinal club"

* 布林常量:true false

* 數字常量: 123  456f  789l  0.1d  0.2e10

* 陣列訪問:array[i]        (map被增強為額外支援 map[key]的方式取值)

* 屬性取值:object.field    (map被增強為額外支援map.key 的方式取值)

* 方法呼叫:object.method(p1, p2…, pn)     (支援可變引數)

* 逗號表示式:123, 1>2, null, "abc", 3+6   (逗號表示式的值為最後乙個表示式的值)

* 模板安全呼叫: ? // #@name ? (p1, p2…, pn)  (指當模板函式未定義時不做任何操作)

2.方法呼叫 :#()

#("abcde".substring(0, 3))

#(girl.getage())

#(list.size())

#(map.get(key))

3.空合併安全取值呼叫操作符,設定預設值

seotitle ?? "預設值"

object.field ??

object.method() ??

特別注意:

?? 操作符的優先順序      高於數學計算運算子:+、-、*、/、%,

低於單目運算子:!、++、--

例如:a.b ?? && expr  ===  (a.b ??) && expr

#if(user && user.id == x.userid)  ==>   if (user.id ?? == x.userid)

4.定義表示式

// map 定義取值

#set(map = )

#(map.k1)、#(map.k2)、#(map["k1"])、#(map["k2"])、#(map.get("k1"))

#(.get(1))

// 陣列定義取值

#set(array = [123, "abc", true])

#(array[1])、#(array[1] = false, array[1])

// 範圍陣列定義

#for(x : [1..10])

#(x)

#end

5.逗號表示式 :  輸出最後一位數值

1+2, 3*4   // 12
6.指令

1.輸出指令: #()

2.#if  

#if(c1)

...#else if(c2)

...#else 

...#end

3.#for

#for(x : list)

#(x.field)

#else

for指令迭代次數為0時預設輸出

#end

4.#switch

#switch (month)

#case (1, 3, 5, 7, 8, 10, 12)

#(month) 月有 31 天

#case (2)

#(month) 月平年有28天,閏年有29天

#default

月份錯誤: #(month ?? "null")

#end

5.#set:set指令只接受賦值表示式,以及用逗號分隔的賦值表示式列表

#set(x = 123)

#set(a = 1, b = 2, c = a + b)

#set(map["key"] = 456)

6.#include:將外部模板內容包含進來,被包含的內容會被解析成為當前模板中的一部分進行使用

#include("sidebar.html")

7.#render: #render(temp:任何表示式)

8.#define: #define name()

9.模板引用: #@name()

10.#call:   

#call(funcname, p1, p2, ..., pn)

#call(true, funcname, p1, p2, ..., pn)    // 模板函式不存在時忽略其呼叫

11.#date

#date(account.createat)

#date(account.createat, "yyyy-mm-dd hh:mm:ss")

12.#number

#number(3.1415926, "#.##")

#number(0.9518, "#.##%")

#number(300000, "光速為每秒,### 公里。")

13.#escape : 轉義, 小於號轉義成:<

#escape(blog.content);

7.注釋

### 這裡是單行注釋

#--   這裡是多行注釋的第一行

這裡是多行注釋的第二行

--#

13 2 4 模板層 模板語言

django約定將所有的html文件都放在templates資料夾下,注意,templates是模板的意思,這是因為放在templates資料夾下的並不全是html文件,如果文件中包含django的模板語言,那就是django模板檔案。來思考乙個響應的過程,當我們使用render 函式返回乙個文件時...

Django模板語言

1.1 模板由兩部分組成 html 邏輯控制 1.2 作用 快速生成html頁面 1.3 優點 模板的設計實現了業務邏輯與現實內容的分離 檢視可以使用任何模板 1.4 模板處理 載入 渲染 2.1 只需要記兩種特殊符號 和 變數相關的用 邏輯相關的用。2.2 邏輯相關 2.2.1.if判斷 2.2....

Django 模板語言

1.深度變數查詢 點號 2.變數的過濾器filter 語法格式 冒號前後不能有空格 filter函式 add 給obj增加數值 capfirst 首字母大寫 cut 移除字串中的指定字元 date 格式化日期字串 default 如果值是false,就提換成設定的預設值,否則就用原本的值,將傳過來的...