This article covers a Hippo CMS version 7.7. There's an updated version available that covers our most recent release.

HstComponent Configuration Properties 

The most important properties of an HST component are:

  • hst:componentclassname
    The Java class to use for this Component. Only components with behavior will need this property. A component that is only meant to have a renderer does not need this property to be defined.

  • hst:template
    The repository path of the template to use for rendering this component, relative to hst:templates.

  • hst:referencecomponent
    The repository path of the component to extend, relative to the hst:configuration node.

  • hst:parameternames
    The multivalued property containing the names of the component parameters

  • hst:parametervalues
    The multivalued property containing the values of the component parameters

The properties hst:template and hst:referencecomponent are already described at TODO-LINK 1._HstComponent_Configuration.html1. HstComponent Configuration . The hst:parameternameshst:parametervalues and the hst:componentclassname will be explained below.

Component Parameters

Every component can have a multivalued property hst:parameternames and hst:parametervalues. If they are configured, both properties must be present and they must be of equal length. From now on, a key-value pair is referred to as a parameter.

Parameters are inherited from ancestor Components. Parameters from ancestor components have precedence: Thus, a parent component can override a parameter on a inherited component, a child component, or an inherited child component. Ancestors have precedence to easily support reuse of inherited components and only change a single parameter. It is also possible to access only the parameters configured on the Component without inheritance: This is done through accessing localParameters. See the#getLocalParameter java doc from the BaseHstComponent. SiteMapItems also can contain parameternames and values, however, it is less used than on Components. For SiteMapItems, also inheritance is supported, however this time, ancestor items do not overwrite parameters from child sitemap items.

Parameter values can contain propertyplaceholders like ${1}, ${2}. These propertyplaceholders are substituted by the respectively first, second, etc, wildcard values of the matched SiteMapItem ancestors that are contain wildcards. A propertyplaceholder can even contain a parametername like ${name} of the matched SiteMapItem: The propertyplaceholder will then be replaced by the value of the parameter of the SiteMapItem. Thus, suppose the matched SiteMapItem contains name=”foo”. Then, a parameter on a component like theName=${name} will result in a parameter theName=”foo”. If a propertyplaceholder can not be resolved, the entire parameter value is set to null.

Componentclassname

This property when present contains the fully qualified classname of the Java class implementing the org.hippoecm.hst.core.component.HstComponent interface. See TODO-LINK 3._HstComponent_Java_Class.html3. HstComponent Java Class for documentation about HstComponent