code: public String property(String name, String file, String defaultValue, boolean escapeHtml) {
  
          if (isNotInitialized()) {
              return getMessage(NOT_INITIALIZED);
          }
          try {
              if (file == null) {
                  file = getController().getCmsObject().getRequestContext().getUri();
              }
              return CmsJspTagProperty.propertyTagAction(name, file, defaultValue, escapeHtml, getRequest());
          } catch (CmsSecurityException e) {
              if (defaultValue == null) {
                  handleException(e);
              }
          } catch (Throwable t) {
              handleException(t);
          }
          if (defaultValue == null) {
              CmsMessageContainer msgContainer = Messages.get().container(
                  Messages.GUI_ERR_FILE_PROP_MISSING_2,
                  name,
                  file);
              return getMessage(msgContainer);
          } else {
              return defaultValue;
          }
      }
docs: Returns a selected file property value with optional HTML escaping, same as using
  the <code>&lt;cms:property name="***" file="***" default="***" /&gt;</code> tag.<p>
  
  Please see the description of the class {@link org.opencms.jsp.CmsJspTagProperty} for
  valid options of the <code>file</code> parameter.<p>
  
  @param name the name of the property to look for
  @param file the file (or folder) to look at for the property
  @param defaultValue a default value in case the property was not found
  @param escapeHtml if <code>true</code>, special HTML characters in the return value
  are escaped with their number representations (e.g. &amp; becomes &amp;#38;)
  @return the value of the property found, or the value of defaultValue
  if the property could not be found
  
  @see org.opencms.jsp.CmsJspTagProperty