package li.mvc.view; import java.util.Map; import java.util.Map.Entry; import java.util.Properties; import javax.servlet.http.HttpServletResponse; import li.mvc.Context; import li.util.Files; import li.util.Log; import org.bee.tl.core.Config; import org.bee.tl.core.GroupTemplate; import org.bee.tl.core.Template; /** * beetl视图 * * @author : 明伟  */ public class BeetlView extends AbstractView { private static final Log log = Log.init(); private static GroupTemplate groupTemplate; public static synchronized GroupTemplate getGroupTemplate() { if (null == groupTemplate) { try { log.info("beetl initializing ..."); Map properties = new Properties(); properties.put("TEMPLATE_ROOT", Context.getRootPath()); properties.put("TEMPLATE_CHARSET", "UTF-8"); properties.putAll(Files.load("beetl.properties"));// 加载自定义配置,覆盖默认 Config config = new Config();// 加载默认配置 config.put(properties); groupTemplate = config.createGroupTemplate();// 生成GroupTemplate } catch (Exception e) { throw new RuntimeException(e); } } return groupTemplate; } public void render(String tempPath, HttpServletResponse response, Map<String, Object> map) throws Exception { Template template = getGroupTemplate().getFileTemplate(tempPath); for (Entry<String, Object> entry : map.entrySet()) { template.set(entry.getKey(), entry.getValue()); } template.getText(response.getWriter()); log.debug("beetl to : ?", tempPath); } }