docs: public String displayBody() {
  
          StringBuffer result = new StringBuffer(256);
  
          // change to online project to allow static export
          try {
              getJsp().getRequestContext().setCurrentProject(m_onlineProject);
              result.append(buildHtmlHelpStart("onlinehelp.css", true));
              result.append("<body>\n");
              result.append("<a name=\"top\"></a>\n");
              result.append("<table class=\"helpcontent\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n");
              result.append("<tr>\n");
              result.append("\t<td class=\"helpnav\">\n");
              result.append(
                  "\t\t<a class=\"navhelphead\" href=\"javascript:top.body.location.href=top.head.homeLink;\">");
              result.append(key(Messages.GUI_HELP_NAVIGATION_HEAD_0));
              result.append("</a>\n");
              result.append(buildHtmlHelpNavigation());
              result.append("</td>\n");
              result.append("\t<td class=\"helpcontent\">\n");
              result.append("\t\t<h1>");
              result.append(
                  getJsp().property(
                      CmsPropertyDefinition.PROPERTY_TITLE,
                      getParamHelpresource(),
                      key(Messages.GUI_HELP_FRAMESET_TITLE_0)));
              result.append("</h1>\n");
              // print navigation if property template-elements is set to sitemap
              result.append(getJsp().getContent(getParamHelpresource(), "body", getLocale()));
              try {
                  // additionally allow appending content of dynamic pages whose path may be specified
                  // as value of property PROPERTY_TEMPLATE_ELEMENTS (currently sitemap.jsp and search.jsp are used)
                  CmsProperty elements = getCms().readPropertyObject(
                      getParamHelpresource(),
                      CmsPropertyDefinition.PROPERTY_TEMPLATE_ELEMENTS,
                      false);
                  if (!elements.isNullProperty()) {
                      try {
                          // trigger an exception here as getContent won't throw anything!
                          getJsp().getCmsObject().readFile(elements.getValue());
                          // Ok, ressource exists: switsch from the online project to turn of static export links.
                          String elementName = elements.getValue();
                          // check, wether the "dynamic resource" wants to be exported or not:
                          boolean export = false;
                          CmsProperty exportProp = getCms().readPropertyObject(
                              elementName,
                              CmsPropertyDefinition.PROPERTY_EXPORT,
                              true);
  
                          if (!exportProp.isNullProperty()) {
                              export = Boolean.valueOf(exportProp.getValue(CmsStringUtil.FALSE)).booleanValue();
                          }
                          if (!export) {
                              // switch back from online project to avoid export:
                              getJsp().getRequestContext().setCurrentProject(m_offlineProject);
                          }
                          result.append(getJsp().getContent(elements.getValue()));
  
                      } catch (Throwable t) {
                          CmsVfsResourceNotFoundException e2 = new CmsVfsResourceNotFoundException(
                              Messages.get().container(
                                  Messages.GUI_HELP_ERR_CONTENT_APPEND_2,
                                  getParamHelpresource(),
                                  elements.getValue(),
                                  CmsPropertyDefinition.PROPERTY_TEMPLATE_ELEMENTS),
                              t);
                          throw e2;
                      }
                  }
              } catch (CmsException e1) {
  
                  if (LOG.isErrorEnabled()) {
                      LOG.error(e1);
                  }
                  result.append("<br>\n<div class=\"dialogerror\">");
                  // getLocale() does not work in this context!?!
                  result.append(e1.getMessageContainer().key(Locale.GERMAN));
                  result.append("</div>");
              }
              result.append("\t</td>\n");
              result.append("</tr>\n");
              result.append("</table>\n");
              result.append(buildHtmlHelpEnd());
              return result.toString();
          } finally {
              getJsp().getRequestContext().setCurrentProject(m_offlineProject);
          }
      }