public void doRender(Context context, String directiveName, Object param, List innerElements)
     throws Exception {
   long beginTime = System.currentTimeMillis();
   DirectiveUtils.renderAll(innerElements, context);
   Long value = new Long(System.currentTimeMillis() - beginTime);
   if (param instanceof String) {
     context.getParentLocalContext().putVariable((String) param, value);
   } else if (param instanceof NamePair) {
     VariableScopeUtils.putVariable(context, true, (NamePair) param, value);
   } else {
     Assert.fail("$block指令参数错误, 参数示例: $block{xxx} 或者 $block{global -> xxx}"); // TODO 未国际化
   }
 }
 public void doRender(Context context, String directiveName, Object param) throws Exception {
   if (param instanceof Entry) {
     Entry model = (Entry) param;
     Object key = model.getKey();
     List list = (List) model.getValue();
     Object value = new Cycle(list);
     if (key instanceof NamePair) {
       VariableScopeUtils.putVariable(context, false, (NamePair) key, value);
     } else {
       String var = String.valueOf(key);
       context.putVariable(var, value);
     }
   } else {
     throw new IllegalStateException("$cycle指令参数错误!"); // TODO 未国际化
   }
 }