private void error(String templateName, Throwable e) { throw new TemplateException("Error rendering FreeMarker template: " + templateName, e); } }
private void error(String templateName, Throwable e) { throw new TemplateException("Error rendering FreeMarker template: " + templateName, e); } }
/** 处理异常,显示额外的信息。 */ private final void error(String templateName, Throwable e) throws TemplateException { String err = "Error rendering Velocity template: " + templateName; getLogger().error(err + ": " + e.getMessage()); if (e instanceof ResourceNotFoundException) { throw new TemplateNotFoundException(err, e); } if (e instanceof TemplateException) { throw (TemplateException) e; } throw new TemplateException(err, e); }
/** 处理异常,显示额外的信息。 */ private final void error(String templateName, Throwable e) throws TemplateException { String err = "Error rendering Velocity template: " + templateName; getLogger().error(err + ": " + e.getMessage()); if (e instanceof ResourceNotFoundException) { throw new TemplateNotFoundException(err, e); } if (e instanceof TemplateException) { throw (TemplateException) e; } throw new TemplateException(err, e); }
public EventCartridge getRuntimeInstance() { EventCartridge runtimeInstance = this; if (needsClone) { runtimeInstance = new EventCartridge(); for (EventHandler ev : allHandlers) { if (ev instanceof ContextAware) { if (ev instanceof FastCloneable) { ev = (EventHandler) ((FastCloneable) ev).createCopy(); } else { try { ev = (EventHandler) cloneMethod.invoke(ev); } catch (Exception e) { throw new TemplateException("Could not clone a ContextAware event handler: " + ev.getClass().getName(), e); } } } runtimeInstance.addEventHandler(ev); } } return runtimeInstance; } }
public EventCartridge getRuntimeInstance() { EventCartridge runtimeInstance = this; if (needsClone) { runtimeInstance = new EventCartridge(); for (EventHandler ev : allHandlers) { if (ev instanceof ContextAware) { if (ev instanceof FastCloneable) { ev = (EventHandler) ((FastCloneable) ev).createCopy(); } else { try { ev = (EventHandler) cloneMethod.invoke(ev); } catch (Exception e) { throw new TemplateException("Could not clone a ContextAware event handler: " + ev.getClass().getName(), e); } } } runtimeInstance.addEventHandler(ev); } } return runtimeInstance; } }
/** * 渲染模板,并以字符串的形式取得渲染的结果。 * * @param template 模板名 * @param context template context * @return 模板渲然的结果字符串 * @throws TemplateException 渲染失败 */ public String getText(String template, TemplateContext context) throws TemplateException, IOException { // 取得JSP相对于webapp的路径。 String relativeTemplateName = getPathWithinServletContext(template); // 取得JSP的RequestDispatcher。 RequestDispatcher dispatcher = servletContext.getRequestDispatcher(relativeTemplateName); if (dispatcher == null) { throw new TemplateNotFoundException("Could not dispatch to JSP template " + template); } try { // 将template context适配到request HttpServletRequest requestWrapper = new TemplateContextAdapter(request, context); // 避免在jsp中修改content type、locale和charset,这应该在模板外部来控制 HttpServletResponse responseWrapper = new JspResponse(response); dispatcher.include(requestWrapper, responseWrapper); } catch (ServletException e) { throw new TemplateException(e); } return ""; }
/** * 渲染模板,并以字符串的形式取得渲染的结果。 * * @param template 模板名 * @param context template context * @return 模板渲然的结果字符串 * @throws TemplateException 渲染失败 */ public String getText(String template, TemplateContext context) throws TemplateException, IOException { // 取得JSP相对于webapp的路径。 String relativeTemplateName = getPathWithinServletContext(template); // 取得JSP的RequestDispatcher。 RequestDispatcher dispatcher = servletContext.getRequestDispatcher(relativeTemplateName); if (dispatcher == null) { throw new TemplateNotFoundException("Could not dispatch to JSP template " + template); } try { // 将template context适配到request HttpServletRequest requestWrapper = new TemplateContextAdapter(request, context); // 避免在jsp中修改content type、locale和charset,这应该在模板外部来控制 HttpServletResponse responseWrapper = new JspResponse(response); dispatcher.include(requestWrapper, responseWrapper); } catch (ServletException e) { throw new TemplateException(e); } return ""; }
private void initProperties() { assertNotNull(loader, "resourceLoader"); // 模板字符集编码 if (charset == null) { charset = DEFAULT_CHARSET; } path = defaultIfNull(path, "/templates"); templateLoader = new SpringResourceLoaderAdapter(loader, path); configuration.setTemplateLoader(templateLoader); // 默认使用StrongCacheStorage setDefaultProperty(CACHE_STORAGE_KEY, StrongCacheStorage.class.getName()); // 异常处理器 setDefaultProperty(TEMPLATE_EXCEPTION_HANDLER_KEY, "rethrow"); // 其它默认选项 setDefaultProperty(DEFAULT_ENCODING_KEY, charset); setDefaultProperty(OUTPUT_ENCODING_KEY, DEFAULT_CHARSET); setDefaultProperty(LOCALIZED_LOOKUP_KEY, "false"); // 设置选项 for (Map.Entry<String, String> entry : properties.entrySet()) { String key = entry.getKey(); String value = trimToNull(entry.getValue()); if (value != null) { try { configuration.setSetting(key, value); } catch (freemarker.template.TemplateException e) { throw new TemplateException("invalid key and value: " + key + " = " + value, e); } } } }
private void initProperties() { assertNotNull(loader, "resourceLoader"); // 模板字符集编码 if (charset == null) { charset = DEFAULT_CHARSET; } path = defaultIfNull(path, "/templates"); templateLoader = new SpringResourceLoaderAdapter(loader, path); configuration.setTemplateLoader(templateLoader); // 默认使用StrongCacheStorage setDefaultProperty(CACHE_STORAGE_KEY, StrongCacheStorage.class.getName()); // 异常处理器 setDefaultProperty(TEMPLATE_EXCEPTION_HANDLER_KEY, "rethrow"); // 其它默认选项 setDefaultProperty(DEFAULT_ENCODING_KEY, charset); setDefaultProperty(OUTPUT_ENCODING_KEY, DEFAULT_CHARSET); setDefaultProperty(LOCALIZED_LOOKUP_KEY, "false"); // 设置选项 for (Map.Entry<String, String> entry : properties.entrySet()) { String key = entry.getKey(); String value = trimToNull(entry.getValue()); if (value != null) { try { configuration.setSetting(key, value); } catch (freemarker.template.TemplateException e) { throw new TemplateException("invalid key and value: " + key + " = " + value, e); } } } }
private void error(String templateName, Throwable e) { throw new TemplateException("Error rendering FreeMarker template: " + templateName, e); } }
/** 处理异常,显示额外的信息。 */ private final void error(String templateName, Throwable e) throws TemplateException { String err = "Error rendering Velocity template: " + templateName; getLogger().error(err + ": " + e.getMessage()); if (e instanceof ResourceNotFoundException) { throw new TemplateNotFoundException(err, e); } if (e instanceof TemplateException) { throw (TemplateException) e; } throw new TemplateException(err, e); }
public EventCartridge getRuntimeInstance() { EventCartridge runtimeInstance = this; if (needsClone) { runtimeInstance = new EventCartridge(); for (EventHandler ev : allHandlers) { if (ev instanceof ContextAware) { if (ev instanceof FastCloneable) { ev = (EventHandler) ((FastCloneable) ev).createCopy(); } else { try { ev = (EventHandler) cloneMethod.invoke(ev); } catch (Exception e) { throw new TemplateException("Could not clone a ContextAware event handler: " + ev.getClass().getName(), e); } } } runtimeInstance.addEventHandler(ev); } } return runtimeInstance; } }
/** * 渲染模板,并以字符串的形式取得渲染的结果。 * * @param template 模板名 * @param context template context * @return 模板渲然的结果字符串 * @throws TemplateException 渲染失败 */ public String getText(String template, TemplateContext context) throws TemplateException, IOException { // 取得JSP相对于webapp的路径。 String relativeTemplateName = getPathWithinServletContext(template); // 取得JSP的RequestDispatcher。 RequestDispatcher dispatcher = servletContext.getRequestDispatcher(relativeTemplateName); if (dispatcher == null) { throw new TemplateNotFoundException("Could not dispatch to JSP template " + template); } try { // 将template context适配到request HttpServletRequest requestWrapper = new TemplateContextAdapter(request, context); // 避免在jsp中修改content type、locale和charset,这应该在模板外部来控制 HttpServletResponse responseWrapper = new JspResponse(response); dispatcher.include(requestWrapper, responseWrapper); } catch (ServletException e) { throw new TemplateException(e); } return ""; }
private void initProperties() { assertNotNull(loader, "resourceLoader"); // 模板字符集编码 if (charset == null) { charset = DEFAULT_CHARSET; } path = defaultIfNull(path, "/templates"); templateLoader = new SpringResourceLoaderAdapter(loader, path); configuration.setTemplateLoader(templateLoader); // 默认使用StrongCacheStorage setDefaultProperty(CACHE_STORAGE_KEY, StrongCacheStorage.class.getName()); // 异常处理器 setDefaultProperty(TEMPLATE_EXCEPTION_HANDLER_KEY, "rethrow"); // 其它默认选项 setDefaultProperty(DEFAULT_ENCODING_KEY, charset); setDefaultProperty(OUTPUT_ENCODING_KEY, DEFAULT_CHARSET); setDefaultProperty(LOCALIZED_LOOKUP_KEY, "false"); // 设置选项 for (Map.Entry<String, String> entry : properties.entrySet()) { String key = entry.getKey(); String value = trimToNull(entry.getValue()); if (value != null) { try { configuration.setSetting(key, value); } catch (freemarker.template.TemplateException e) { throw new TemplateException("invalid key and value: " + key + " = " + value, e); } } } }
private void doWriteTo(String templateName, TemplateContext templateContext, Object out) throws TemplateException, IOException { try { String path = getTemplatePath(templateName); ContextMap map = new ContextMap(templateContext); TurbineRunData rundata = (TurbineRunData) templateContext.get("rundata"); if (rundata != null) { HttpServletRequest request = rundata.getRequest(); HttpServletResponse response = rundata.getResponse(); if (rundata.getRequest() != null && rundata.getResponse() != null) { WebEngine.setRequestAndResponse(request, response); WebEngine.getEngine().getTemplate(path, request.getLocale(), templateEncoding, map).render(map, out); return; } } WebEngine.getEngine().getTemplate(path, templateEncoding).render(map, out); } catch (ParseException e) { throw new TemplateException(e.getMessage(), e); } }