10

如何为 facelet 模板参数定义默认值?考虑使用模板参数的以下元素:

<h:outputText value="#{templParam}"></h:outputText>

上面的行将打印模板参数,该参数由使用模板的标签templParam 传递:ui:paramui:composition

<ui:param name="templParam" value="Hello world"></ui:param>

但如果ui:param标签丢失,则不会打印任何内容。虽然,在这种情况下如何打印例如“默认值”?

4

3 回答 3

14

可以使用这个:

<h:outputText value="#{empty templParam ? 'Default value' : templParam}" />

我希望它有所帮助。

于 2013-01-21T07:40:32.467 回答
9

可以通过使用三元运算符检查空值来定义默认值。

<h:outputText value="#{templParam != null ? templParam : 'Default value'}"></h:outputText>

如果参数未通过ui:param标签传递,这将打印“默认值”。

于 2012-07-13T11:38:05.620 回答
2

在组合标记定义模板的开始之后,模板参数可以设置为它的默认值(如果它是空的),这样它的所有后续使用都不需要每次都检查空值(以及它的默认值)位于代码中的一处)。

<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}" />
于 2016-11-03T16:50:30.667 回答