美文网首页JFinal极速开发Java学习笔记jfinal
JFinal3.0快速上手,遇见模板引擎(十八)

JFinal3.0快速上手,遇见模板引擎(十八)

作者: 葉糖糖 | 来源:发表于2017-05-13 14:44 被阅读3233次

    本小节主要介绍一些指令的使用方法。JFinal Template Engine 中的指令非常简单且核心指令只有6个,便于学习和使用。大部分指令见名知义如:#if#for#set#include#define#(),最后一个是输出指令。

    在开始指令学习之前,想先简单的介绍一下模板引擎。
    什么是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>
    

    酱紫,就已经掌握了3个指令。接下来会继续讲#if#for#set指令。祝大家学习愉快!
    PS:5月14日,母亲节记得给母亲打个电话,问声好!有条件的给母亲准备点小礼物,回家看看,一起吃吃饭!没有什么比一家团圆在一起还重要了。

    相关文章

      网友评论

        本文标题:JFinal3.0快速上手,遇见模板引擎(十八)

        本文链接:https://www.haomeiwen.com/subject/xkcxxxtx.html