HstComponent Configuration Properties - BloomReach Experience - Open Source CMS

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

06-10-2016

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 HstComponent Configuration. The hst:parameternames, hst: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 that are not defined on the component itself are inherited from ancestor Components. In case a component has the same parameter as an ancestor, the one from the component has precedence over the inherited one. Note that this is different than in CMS 7.9.

in CMS 7.9, parameters from ancestor components had precedence. In CMS 10.0 the parameters on the component itself have precedence. This has changed. Compare this document with  7.9 HstComponent Configuration Properties to read how it worked in the CMS 7.9 and earlier.

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, parameters for ancestor items are also inherited.

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 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 HstComponent Java Class for documentation about HstComponent

Did you find this page helpful?
How could this documentation serve you better?
On this page
    Did you find this page helpful?
    How could this documentation serve you better?