code: @Override
  	public void doTag() throws JspException, IOException {
  		PageContext pageContext = (PageContext) getJspContext();
          HttpServletRequest request  = (HttpServletRequest) pageContext.getRequest();
  
  		// set global parameter
  		globalMap.put("__AXU4J_CONTEXT_PATH__", request.getContextPath());
  
          // invoke body tags. like div, row, col...
          StringWriter dummy = new StringWriter();
          getJspBody().invoke(dummy);
  
          boolean isPjax = BooleanUtils.toBoolean(ObjectUtils.toString(request.getHeader(HEADER_KEY_PJAX)));
          if (isPjax) {
              Writer out = pageContext.getOut();
              String[] divs = StringUtils.split(request.getHeader(HEADER_KEY_AXU4J_DIV), ",");
  
              for(String div : divs) {
                  out.write(divMap.get(StringUtils.trim(div)));
              }
              return;
          }
  
          AXUConfig config = ConfigReader.getConfig();
          String layoutFilename = getLayoutFilename();
  
          Reader layoutFileReader = null;
          try {
              // JSP
              if (StringUtils.endsWithIgnoreCase(layoutFilename, "jsp")) {
  
                  pageContext.getRequest().setAttribute("divMap", divMap);
                  pageContext.forward(layoutFilename);
  
              // HTML, else
              } else {
                  layoutFileReader = new BufferedReader(new InputStreamReader(
                          new FileInputStream(getLayoutFile(layoutFilename)), config.getLayoutEncoding()));
  
                  globalMap.put("param",   TagUtils.getRequestParameterMap(pageContext));
                  globalMap.put("request", TagUtils.getRequestAttributeMap(pageContext));
                  globalMap.put("session", TagUtils.getSessionAttributeMap(pageContext));
                  globalMap.put("cookie",  TagUtils.getCookieMap(pageContext));
  
                  Object[] params = new Object[] { divMap, globalMap };
                  mustacheHtml = mustacheFactory.compile(layoutFileReader, key);
                  mustacheHtml.execute(getJspContext().getOut(), params);
  
              }
          } catch (Exception e) {
              throw new JspException(String.format("LayoutTag is fail.\nname: %s", name), e);
          } finally {
              if (layoutFileReader != null) {
                  layoutFileReader.close();
              }
              divMap = null;
          }
      }
docs: override doTag method