JFinalBeetlRenderFactory.java 1.43 KB
package com.jflyfox.component.beelt;

import com.jfinal.kit.PathKit;
import com.jfinal.render.Render;
import com.jfinal.render.RenderFactory;
import org.beetl.core.Configuration;
import org.beetl.core.GroupTemplate;
import org.beetl.core.ResourceLoader;
import org.beetl.core.resource.WebAppResourceLoader;

import java.io.IOException;

/**
 * beetl render factory
 *
 * @author jflyfox
 * @date 2019/10/30
 */
public class JFinalBeetlRenderFactory extends RenderFactory {
    public GroupTemplate groupTemplate = null;

    public JFinalBeetlRenderFactory() {
    }

    @Override
    public Render getRender(String view) {
        return new JFinalBeetlRender(this.groupTemplate, view);
    }

    public void config() {
        String root = PathKit.getWebRootPath();
        WebAppResourceLoader resourceLoader = new WebAppResourceLoader(root);
        this.config(resourceLoader);
    }

    public void config(String root) {
        WebAppResourceLoader resourceLoader = new WebAppResourceLoader(root);
        this.config(resourceLoader);
    }

    public void config(ResourceLoader rs) {
        if (this.groupTemplate != null) {
            this.groupTemplate.close();
        }

        try {
            Configuration cfg = Configuration.defaultConfiguration();
            this.groupTemplate = new GroupTemplate(rs, cfg);
        } catch (IOException var3) {
            throw new RuntimeException("加载GroupTemplate失败", var3);
        }
    }
}