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

这一小节,我们将一起玩2个好玩的技能点,第一个是通过java类来增强JTE(JFinal Template Engine);第二个是通过共享对象来增强JTE。好啦,让我们一起开车!

1、为什么需要使用java类增强指令?

个人的愚见是:在模板上最好还是写一些简单明了的代码,稍微复杂一点的代码还是写在java类的业务层;当然这样也让代码具有可重用性。

使用java类增强JTE无需继承任何类或者实现接口,这是一个比较好的地方,这样做可以实现解耦。首先我们得编写一个普通的java类,并定一个或多个方法。在Now类中,编写一个SayHello()方法,该方法接受一个String类型的参数,代码如下:

package com.demo.test;
public class Now{
    public String SayHello(String name){
        return "hello "+name+",欢迎你进入王者峡谷!";
    }
}

代码已经写完了,那总得有个配置的地方吧?我们得通知jfinal,这是需要添加的方法。是的,我们只需要在模板引擎的配置项中配置需要增强的java类的实例即可。使用方法如下:

    public void configEngine(Engine me) {
        //添加共享方法的java类实例
        me.addSharedMethod(new Now());
    }

到此为止,即可编写HTML页面代码,并调用SayHello方法。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jfinal模板引擎之二十二</title>
</head>
<body>
#(SayHello("yetangtang"))
</body>
</html>

好激动,一起来查看效果!

真是一个有趣的实验

2、通过共享对象增强JTE

从标题其实就可以理解,其实这个黑科技就是添加全局的对象来方便操作。接下来,我们需要改造上面的方法。第一步,先去修改配置。

    public void configEngine(Engine me) {
        //假装Now类,是一个工具类
        me.addSharedObject("my_util", new Now());
        //假装SayHello的人不会有什么变化,是不是有点常量的赶脚
        me.addSharedObject("yetangtang","sugarYe");
    }

是时候改造模板页面上的代码,见证奇迹了。通过代码可以看出来是直接通过对象名调用方法的,跟前面的方法调用有所不同。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jfinal模板引擎之二十二</title>
</head>
<body>
#(my_util.SayHello(yetangtang))
</body>
</html>

老规矩,有图有真相。

完美实现

PS:好了,小伙伴们,祝你们学习愉快!请更多的阅读官方文档。如果想和更多的小伙伴一起愉快的写代码,可以加490373584(qq群,嘻嘻~)!

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 132,637评论 18 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 30,942评论 18 399
  • js内存泄露 js内存的机制 js的基本变量 boolean string number null undefin...
    yongningfu阅读 299评论 0 0
  • 写封信给一百天后的自己,感觉很幼稚,也很新鲜,记得儿子刚进初中时,老师也要求他们给三年后的自己写封信,三年后看看是...
    小艳子0561阅读 238评论 0 2
  • Maven基础:Apache 开源的项目编译工具 两大核心功能 一、项目依赖管理 二、项目构建
    553fad73653c阅读 177评论 0 0