docs: public void apply(ActionContext context) {
          Boolean hasTemplate = context.hasTemplate();
          if (null != hasTemplate && hasTemplate) {
              RenderTemplate.get(context.successStatus()).apply(context);
              return;
          }
          H.Format fmt = context.accept();
          if (fmt == UNKNOWN) {
              H.Request req = context.req();
              if (req.userAgent().isIE9Down()) {
                  fmt = HTML;
              } else {
                  H.Method method = req.method();
                  String methodInfo = S.concat(method.name(), " method to ");
                  String acceptHeader = req.header(H.Header.Names.ACCEPT);
                  throw E.unsupport(S.concat(
                          "Unknown accept content type(",
                          acceptHeader,
                          "): ",
                          methodInfo,
                          req.url()));
              }
          }
          Result result = null;
          if (JSON == fmt) {
              List<String> varNames = context.__appRenderArgNames();
              Map<String, Object> map = new HashMap<>(context.renderArgs());
              if (null != varNames && !varNames.isEmpty()) {
                  for (String name : varNames) {
                      map.put(name, context.renderArg(name));
                  }
              }
              result = new RenderJSON(map);
          } else if (XML == fmt) {
              List<String> varNames = context.__appRenderArgNames();
              Map<String, Object> map = new HashMap<>();
              if (null != varNames && !varNames.isEmpty()) {
                  for (String name : varNames) {
                      map.put(name, context.renderArg(name));
                  }
              }
              result = new FilteredRenderXML(map, null, context);
          } else if (HTML == fmt || TXT == fmt || CSV == fmt) {
              if (!ignoreMissingTemplate) {
                  throw E.unsupport("Template[%s] not found", context.templatePath());
              }
              context.nullValueResultIgnoreRenderArgs().apply(context.req(), context.prepareRespForResultEvaluation());
              return;
          } else if (PDF == fmt || XLS == fmt || XLSX == fmt || DOC == fmt || DOCX == fmt) {
              List<String> varNames = context.__appRenderArgNames();
              if (null != varNames && !varNames.isEmpty()) {
                  Object firstVar = context.renderArg(varNames.get(0));
                  String action = S.str(context.actionPath()).afterLast(".").toString();
                  if (firstVar instanceof File) {
                      File file = (File) firstVar;
                      result = new RenderBinary(file, action);
                  } else if (firstVar instanceof InputStream) {
                      InputStream is = (InputStream) firstVar;
                      result = new RenderBinary(is, action);
                  } else if (firstVar instanceof ISObject) {
                      ISObject sobj = (ISObject) firstVar;
                      result = new RenderBinary(sobj.asInputStream(), action);
                  }
                  if (null == result) {
                      throw E.unsupport("Unknown render arg type [%s] for binary response", firstVar.getClass());
                  }
              } else {
                  throw E.unexpected("No render arg found for binary response");
              }
          }
          if (null != result) {
              ActResponse<?> resp = context.prepareRespForResultEvaluation();
              result.status(context.successStatus()).apply(context.req(), resp);
          } else {
              throw E.unexpected("Unknown accept content type: %s", fmt.contentType());
          }
      }