jfinal 遇見模板引擎(十二)
阿新 • • 發佈:2019-02-16
在開始指令學習之前,想先簡單的介紹一下模板引擎。
什麼是Web模板引擎?
答:Web模板引擎是一種生成HTML文件規範的技術實現。
為什麼要使用模板去進行Web開發?
答:在特定的場景下使用模板開發可以提高開發效率,解放生產力。這樣做可以讓開發工作變得簡單,方便。
什麼場景下可以選擇使用模板開發專案?
答:想偷懶的任何時候,都可以使用。舉個栗子,比如下一個專案是單純的Web端專案,不需要提供API給移動端,也不想寫過多的JavaScript程式碼控制頁面等情況。
一、編寫Hello World,第一行程式碼
如何輸出內容很關鍵,因為我們最終目的就是要將資訊展示給使用者瀏覽,不管是App,站點,各種管理系統。那麼如何利用JFTE來進行輸出呢?其實一開始我們就知道了,可以使用
#()
來進行輸出。敲黑板,使用標準的輸出指令,輸出#(value)不用擔心值為null的時候頁面渲染出錯。如果是輸出物件不存在,則需要做異常處理,使用??
來解決值。
1、程式碼速覽
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>JFTE測試</title> </head> <body> <h2>來啊,打我呀</h2> <!--JFTE輸出指令使用方法--> #("反正隔著螢幕你也打不到我") </body> </html>
2、效果驗證
第二行文字是通過#()指令輸出
3、網頁原始碼檢視
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JFTE測試</title>
</head>
<body>
<h2>來啊,打我呀</h2>
<!--JFTE輸出指令使用方法-->
反正隔著螢幕你也打不到我
</body>
</html>
其實看到這裡,相信你已經明白了。我們使用指令操作最終還是會被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 預設方法
*/
public void index() {
//建立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 )
<!--如果不確定物件是否存在使用??來處理,
叫做“空合安全取值呼叫運算子”,簡單點就是“空合運算子”-->
#(user1.pwd ??)
<!--可以在指令中使用表示式,這裡演示三目(元)表示式-->
#(a>b?'我的天吶!!!':'這算個啥???')
<!--空合運算,如果物件有值就返回物件;
如果物件的值不存在,則返回預設指定的值-->
#(user1 ?? "sugarYe!查無此人,他應該躲在JFinal俱樂部!")
<!--呼叫物件的方法,而不輸出內容-->
#(user.get("name"),null)
<!--直接呼叫物件方法,進行輸出-->
#(user.get("id"))
<!--不進行輸出-->
#(1234,null)
</body>
</html>
作者:葉糖糖
連結:https://www.jianshu.com/p/f9fa6894552c
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。