All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.nutz.plugins.view.BeetlView Maven / Gradle / Ivy

package org.nutz.plugins.view;

import java.io.File;
import java.io.IOException;
import java.util.Map;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.beetl.core.Configuration;
import org.beetl.core.GroupTemplate;
import org.beetl.core.resource.WebAppResourceLoader;
import org.beetl.ext.web.WebRender;
import org.nutz.lang.Strings;

/**
 * Beetl视图。
 * @author denghuafeng([email protected])
 *
 */
public class BeetlView extends AbstractTemplateViewResolver {
	public GroupTemplate groupTemplate;

	@Override
	protected void init(String appRoot,ServletContext sc) {
		Configuration cfg = null;
		try {
			cfg = Configuration.defaultConfiguration();
			//针对beetl放在公共的lib目录获取不到beetl.properties的补救方案
			if(!Strings.isBlank(getConfigPath())){
				cfg.add(new File(appRoot+"/"+getConfigPath()+"/beetl.properties"));
			}
		} catch (IOException e) {
			throw new RuntimeException("加载GroupTemplate失败", e);
		}
		WebAppResourceLoader resourceLoader = new WebAppResourceLoader();
		resourceLoader.setRoot(appRoot);
		groupTemplate = new GroupTemplate(resourceLoader, cfg);
		groupTemplate.setClassLoader(sc.getClassLoader());
	}

	@Override
	public void render(HttpServletRequest req, HttpServletResponse resp,
			String evalPath, Map sharedVars) throws Throwable {
		groupTemplate.setSharedVars(sharedVars);
		WebRender render = new WebRender(groupTemplate);
		render.render(evalPath, req, resp);
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy