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.github.sog.render.ftl;
  
 
 import java.util.Map;

Freemarker 的工具类.

Author(s):
poplar.yfyang
Version:
1.0 2012-04-20 上午7:30
Since:
JDK 1.5
 
 public class DirectiveUtils {

    
override的标记
 
     public static final String BLOCK                 = "__ftl_override__";
     public static final String OVERRIDE_CURRENT_NODE = "__ftl_override_current_node";

    
返回override的标记与对应的名称信息

Parameters:
name 名称
Returns:
标记名称信息
 
     public static String getOverrideVariableName(String name) {
         return  + name;
     }
 
     public static void exposeIflytekMacros(Configuration conf) {
     }

    
取得参数params中必须存在的指定Key的值,如果不存在,抛出异常

Parameters:
params 参数Map
key 必须存在的Key
Returns:
对应key的值
Throws:
freemarker.template.TemplateException 异常,如果key不存在params中则会出现异常
 
     @SuppressWarnings("rawtypes")
     static String getRequiredParam(Map paramsString keythrows TemplateException {
         Object value = params.get(key);
         if (value == null || StringUtils.isEmpty(value.toString())) {
             throw new TemplateModelException("not found required parameter:" + key + " for directive");
         }
         return value.toString();
     }

    
取得params中指定Key的值,如果不存在返回默认信息

Parameters:
params 参数Map
key key信息
defaultValue 默认值
Returns:
对应Key的值,不存在返回默认
 
     @SuppressWarnings("rawtypes")
     static String getParam(Map paramsString keyString defaultValue) {
         Object value = params.get(key);
         return value == null ? defaultValue : value.toString();
     }

    
从Freemarker的运行环境中,取得指定名称的覆盖内容渲染器

Parameters:
env 运行环境
name 指定名称
Returns:
覆盖内容渲染器
Throws:
freemarker.template.TemplateModelException 模板模型异常
 
             throws TemplateModelException {
                 env.getVariable(DirectiveUtils.getOverrideVariableName(name));
     }

    
对指定的Body的渲染器,指定其父亲的内容区域

Parameters:
topBody 内容渲染器
overrideBody 需要覆盖的内容渲染器
 
                                        OverrideDirective.TemplateDirectiveBodyOverrideWraper overrideBody) {
        OverrideDirective.TemplateDirectiveBodyOverrideWraper parent = overrideBody;
        while (parent.parentBody != null) {
            parent = parent.parentBody;
        }
        parent.parentBody = topBody;
    }
New to GrepCode? Check out our FAQ X