Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   *
   * Copyright (c) 2013-2014 sagyf Yang. The Four Group.
   */
  
  package com.jfinal.render;
  
 
 import java.util.Map;
FreeMarkerRender.
 
 public class FreeMarkerRender extends Render {
 
     private static final           long          serialVersionUID = -7649769283048920381L;
     private transient static final String        encoding         = getEncoding();
     private transient static final String        contentType      = "text/html; charset=" + ;
     private transient static final Configuration config           = new Configuration();
 
     public FreeMarkerRender(String view) {
         this. = view;
     }

    
freemarker can not load freemarker.properies automatically
 
     public static Configuration getConfiguration() {
         return ;
     }

    
Set freemarker's property. The value of template_update_delay is 5 seconds. Example: FreeMarkerRender.setProperty("template_update_delay", "1600");
 
     public static void setProperty(String propertyNameString propertyValue) {
         try {
             FreeMarkerRender.getConfiguration().setSetting(propertyNamepropertyValue);
         } catch (TemplateException e) {
             throw new RuntimeException(e);
         }
     }
 
     public static void setProperties(Properties properties) {
         try {
             FreeMarkerRender.getConfiguration().setSettings(properties);
         } catch (TemplateException e) {
             throw new RuntimeException(e);
         }
     }
 
     static void init(ServletContext servletContextLocale localeint template_update_delay) {
         // Initialize the FreeMarker configuration;
         // - Create a configuration instance
         // config = new Configuration();
         // - Templates are stoted in the WEB-INF/templates directory of the Web app.
         .setServletContextForTemplateLoading(servletContext.);    // "WEB-INF/templates"
         // - Set update dealy to 0 for now, to ease debugging and testing.
         //   Higher value should be used in production environment.
 
         if (getDevMode()) {
             .setTemplateUpdateDelay(0);
         } else {
             .setTemplateUpdateDelay(template_update_delay);
         }
 
         // - Set an error handler that prints errors so they are readable with
         //   a HTML browser.
         // config.setTemplateExceptionHandler(TemplateExceptionHandler.HTML_DEBUG_HANDLER);
 
         // - Use beans wrapper (recommmended for most applications)
         // - Set the default charset of the template files
         .setDefaultEncoding();        // config.setDefaultEncoding("ISO-8859-1");
         // - Set the charset of the output. This is actually just a hint, that
         //   templates may require for URL encoding and for generating META element
         //   that uses http-equiv="Content-type".
         .setOutputEncoding();            // config.setOutputEncoding("UTF-8");
         // - Set the default locale
         .setLocale(locale /* Locale.CHINA */);        // config.setLocale(Locale.US);
         .setLocalizedLookup(false);
 
         // 去掉int型输出时的逗号, 例如: 123,456
         // config.setNumberFormat("#");		// config.setNumberFormat("0"); 也可以
         .setNumberFormat("#0.#####");
     }
 
    public void render() {
        final Enumeration<Stringattrs = .getAttributeNames();
        final Map<StringObjectroot = Maps.newHashMap();
        while (attrs.hasMoreElements()) {
            String attrName = attrs.nextElement();
            root.put(attrName.getAttribute(attrName));
        }
        PrintWriter writer = null;
        try {
            final Template template = .getTemplate();
            writer = .getWriter();
            template.process(rootwriter);        // Merge the data-model and the template
        } catch (Exception e) {
            throw new RenderException(e);
        } finally {
            IOUtils.closeQuietly(writer);
        }
    }
New to GrepCode? Check out our FAQ X