Facelets:ui:param默认值

时间:2012-07-13 11:38:05

标签: jsf facelets

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

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

以上行将打印模板参数templParam,该参数由ui:param中使用模板的ui:composition标记传递:

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

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

3 个答案:

答案 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}" />