How can one define a default value for a facelet template parameter? Consider the following element using a template parameter:
<h:outputText value="#{templParam}"></h:outputText>
The above line will print the the template parameter templParam
which is passed by a ui:param
tag in a ui:composition
using the template:
<ui:param name="templParam" value="Hello world"></ui:param>
But if ui:param
tag is missing nothing will be printed. Although, how can one print e.g "Default value" in this case?
Could use this:
<h:outputText value="#{empty templParam ? 'Default value' : templParam}" />
I hope it helps.
After the composition tag to define the start of the template, the template parameter can be set to its default value (if it is empty) so that all following uses of it don't require checking for a null each time (and its default value is in one place in the code).
<html xmlns:c="http://java.sun.com/jsp/jstl/core" >
<ui:composition>
<c:set var="templParam" value="#{empty templParam ? 'Default value' : templParam}"
scope="request" />
<h:outputText value="Use 1: #{templParam}" />
<h:outputText value="Use 2: #{templParam}" />
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With