本小節(jié)主要介紹一些指令的使用方法萎羔。JFinal Template Engine 中的指令非常簡單且核心指令只有6個,便于學(xué)習(xí)和使用溯饵。大部分指令見名知義如:
#if
旗们、#for
亲配、#set
套耕、#include
谁帕、#define
、#()
冯袍,最后一個是輸出指令匈挖。
在開始指令學(xué)習(xí)之前,想先簡單的介紹一下模板引擎康愤。
什么是Web模板引擎儡循?
答:Web模板引擎是一種生成HTML文檔規(guī)范的技術(shù)實現(xiàn)。
為什么要使用模板去進(jìn)行Web開發(fā)翘瓮?
答:在特定的場景下使用模板開發(fā)可以提高開發(fā)效率,解放生產(chǎn)力裤翩。這樣做可以讓開發(fā)工作變得簡單资盅,方便调榄。
什么場景下可以選擇使用模板開發(fā)項目?
答:想偷懶的任何時候呵扛,都可以使用每庆。舉個栗子,比如下一個項目是單純的Web端項目今穿,不需要提供API給移動端缤灵,也不想寫過多的JavaScript代碼控制頁面等情況。
一蓝晒、編寫Hello World腮出,第一行代碼
如何輸出內(nèi)容很關(guān)鍵,因為我們最終目的就是要將信息展示給用戶瀏覽芝薇,不管是App胚嘲,站點,各種管理系統(tǒng)洛二。那么如何利用JFTE來進(jìn)行輸出呢馋劈?其實一開始我們就知道了,可以使用
#()
來進(jìn)行輸出晾嘶。敲黑板妓雾,使用標(biāo)準(zhǔn)的輸出指令,輸出#(value)不用擔(dān)心值為null的時候頁面渲染出錯垒迂。如果是輸出對象不存在械姻,則需要做異常處理,使用??
來解決值娇斑。
1策添、代碼速覽
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JFTE測試</title>
</head>
<body>
<h2>來啊,打我呀</h2>
<!--JFTE輸出指令使用方法-->
#("反正隔著屏幕你也打不到我")
</body>
</html>
2毫缆、效果驗證
3唯竹、網(wǎng)頁源碼查看
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JFTE測試</title>
</head>
<body>
<h2>來啊,打我呀</h2>
<!--JFTE輸出指令使用方法-->
反正隔著屏幕你也打不到我
</body>
</html>
其實看到這里苦丁,相信你已經(jīng)明白了浸颓。我們使用指令操作最終還是會被JFTE解析為正常的HTML文檔。那么使用#()
還可以怎么玩旺拉?請看下文产上。
二、把玩#()
輸出指令
1蛾狗、改造控制器
package com.demo.login;
import com.jfinal.core.Controller;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Record;
public class LoginController extends Controller {
/**
* @author sugarYe
* @date 2017/05/10
* @desc 默認(rèn)方法
*/
public void index() {
//創(chuàng)建user記錄
Record user=new Record();
//添加屬性值
user.set("id", 1);
user.set("name", "sugarYe");
user.set("pwd", null);
//添加user對象
setAttr("user",user);
//添加a晋涣,b
setAttr("a",2);
setAttr("b",100);
//渲染頁面
render("userList.html");
}
}
2、嗨翻模板輸出
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JFTE測試</title>
</head>
<body>
<h2>來啊沉桌,打我呀</h2>
<!--JFTE輸出指令使用方法-->
#("反正隔著屏幕你也打不到我")
<!--獲取user對象的name值谢鹊,并輸出到頁面-->
#(user.name)
<!--user1對象不存在算吩,會拋出異常信息:
"user1" can not be null for accessed by "user1.pwd"-->
#(user1.pwd )
<!--如果不確定對象是否存在使用??來處理,
叫做“空合安全取值調(diào)用運算符”佃扼,簡單點就是“空合運算符”-->
#(user1.pwd ??)
<!--可以在指令中使用表達(dá)式偎巢,這里演示三目(元)表達(dá)式-->
#(a>b?'我的天吶!<嬉压昼!':'這算個啥?瘤运?窍霞?')
<!--空合運算,如果對象有值就返回對象尽超;
如果對象的值不存在官撼,則返回默認(rèn)指定的值-->
#(user1 ?? "sugarYe!查無此人似谁,他應(yīng)該躲在JFinal俱樂部傲绣!")
<!--調(diào)用對象的方法,而不輸出內(nèi)容-->
#(user.get("name"),null)
<!--直接調(diào)用對象方法巩踏,進(jìn)行輸出-->
#(user.get("id"))
<!--不進(jìn)行輸出-->
#(1234,null)
</body>
</html>
醬紫秃诵,就已經(jīng)掌握了3個指令。接下來會繼續(xù)講#if塞琼、#for菠净、#set指令。祝大家學(xué)習(xí)愉快彪杉!
PS:5月14日毅往,母親節(jié)記得給母親打個電話,問聲好派近!有條件的給母親準(zhǔn)備點小禮物攀唯,回家看看,一起吃吃飯渴丸!沒有什么比一家團(tuán)圓在一起還重要了侯嘀。