Hst Component 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.
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.