1. 程式人生 > >jfinal 遇見模板引擎(十二)

jfinal 遇見模板引擎(十二)

在開始指令學習之前,想先簡單的介紹一下模板引擎。
什麼是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
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。