如何定义facelet模板参数的默认值? 使用模板参数考虑以下元素:
<h:outputText value="#{templParam}"></h:outputText>
以上行将打印模板参数templParam
,该参数由ui:param
中使用模板的ui:composition
标记传递:
<ui:param name="templParam" value="Hello world"></ui:param>
但是如果缺少ui:param
标签,则不会打印任何内容。虽然如何在这种情况下打印例如“默认值”?
答案 0 :(得分:13)
可以使用这个:
<h:outputText value="#{empty templParam ? 'Default value' : templParam}" />
我希望它有所帮助。
答案 1 :(得分:9)
可以使用ternary operator检查空值来定义默认值。
<h:outputText value="#{templParam != null ? templParam : 'Default value'}"></h:outputText>
如果参数未被ui:param
标记传递,则会打印“默认值”。
答案 2 :(得分:2)
在用于定义模板开始的组合标记之后,可以将模板参数设置为其默认值(如果它是空的),以便以后对它的所有后续使用都不需要每次都检查null(和它的默认值在代码中的一个位置。)
<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}" />