首页 > 解决方案 > JSF 自定义标签 - 它们可以有条件地使用吗?

问题描述

我既无法找到直接的答案,也无法弄清楚如何表达,但我正在尝试使用 JSF 的“自定义标签”来实现条件。我做了一个精简的任意示例来演示:

<ui:composition xmlns:mytag="http://my.tag/this">
    <c:choose>
        <c:when test="mytag:this">
            <mytag:this>
        </c:when>
        <c:otherwise>
            <div>this page</div>
        </c:otherwise>
    </c:choose>
</ui:composition>

这将在 taglib 引用的上下文中,如果源可用,则仅包括自定义标记。确切的情况是可以动态覆盖页面(如果存在)或以其他方式显示“否则”内容。

到目前为止,我并没有过多地考虑用我的“暗中刺探”方法来编译它(而不是看到任何这样做的例子)。

我是否正在尝试寻找不可能的解决方案?

标签: jsffacelets

解决方案


自从我使用 JSF 以来已经有好几年了,但是如果我没记错的话,自定义“标签”只能用作 HTML 标签,但不能在 EL 表达式中使用。

要在 EL 表达式中使用,您可以创建自定义 EL 函数。然后你可以写:

<c:when test="#{yourFunction()}">

推荐阅读