jfinal enjoy模板入门

唐钰逍遥 / 2024-04-21 / 原文

用途

用于渲染需要多次重复的sql以及程序代码,相比较于mybatis组装模块,这种方式更灵活,可以用于组件其他的数据库、脚本语言脚本。

入门示例

取自文件

import com.jfinal.template.Engine;
import com.jfinal.template.Template;
import java.util.HashMap;
import java.util.Map;
public class EnjoyTemplateDemo {
    public static void main(String[] args) {
        // 创建模板引擎实例
        Engine engine = Engine.create("myEngine");
        // 设置模板文件加载的基础路径(这里假设模板文件放在resources目录)
        engine.setBaseTemplatePath("src/main/resources");
        // 准备数据
        Map<String, Object> data = new HashMap<>();
        data.put("users", new String[]{"Alice", "Bob", "Charlie", "David"});
        // 获取模板对象
        Template template = engine.getTemplate("template.html");
        // 渲染模板
        String output = template.renderToString(data);
        System.out.println(output);
    }
}

template.html是Enjoy模板文件,应该放在src/main/resources目录下:

#(for user in users)
    <p>用户名称: #(user)</p>
#(end)

取自字符串

import com.jfinal.template.Engine;
import com.jfinal.template.Template;
import java.util.HashMap;
import java.util.Map;
public class EnjoyTemplateFromStringDemo {
    public static void main(String[] args) {
        // 创建模板引擎实例
        Engine engine = Engine.use();
        // 准备模板内容
        String templateContent = "#(for user in users)\n    用户名称: #(user)\n#(end)";
        // 准备数据
        Map<String, Object> data = new HashMap<>();
        data.put("users", new String[]{"Alice", "Bob", "Charlie", "David"});
        // 使用模板内容创建模板对象
        Template template = engine.getTemplateByString(templateContent);
        // 渲染模板并输出结果
        String output = template.renderToString(data);
        System.out.println(output);
    }
}