Jsp <;c:如果>;JSF页面的标签

Jsp <;c:如果>;JSF页面的标签,jsp,jsf,tags,if-statement,Jsp,Jsf,Tags,If Statement,用于开发Portlet和JPS,因此遇到了一个难题 任务:仅当列表不为空时才显示 是否可以为JSF页面提供标签?是的,您可以在JSF页面中添加JSTL标签。但是,在您的情况下,您可以简单地执行以下操作: <h:dataTable value="#{myBean.list}"... rendered="#{myBean.displayTable}"> ... </h:dataTable> 您也可以尝试一下(不确定是否有效): ... ... 请注意,您可以使用

用于开发Portlet和JPS,因此遇到了一个难题

任务:仅当列表不为空时才显示


是否可以为JSF页面提供标签?

是的,您可以在JSF页面中添加JSTL标签。但是,在您的情况下,您可以简单地执行以下操作:

<h:dataTable value="#{myBean.list}"... rendered="#{myBean.displayTable}">
    ...
</h:dataTable>
您也可以尝试一下(不确定是否有效):


...
...

请注意,您可以使用
而不是EL表达式中的
not
关键字(请参阅关于EL表达式的指南),这将导致
rendered=“#{!empty myBean.list}”
是,您可以在JSF页面中添加JSTL标记。但是,在您的情况下,您可以简单地执行以下操作:

<h:dataTable value="#{myBean.list}"... rendered="#{myBean.displayTable}">
    ...
</h:dataTable>
您也可以尝试一下(不确定是否有效):


...
...

请注意,您可以使用
而不是EL表达式中的
not
关键字(请参阅关于EL表达式的指南),在大多数情况下,JSF中可以使用
rendered=“#{!empty myBean.list}”
(以及其他JSTL标记)。但是,不能在迭代集合的组件内部使用,例如
。但在您的情况下,您希望
在外部,因此这是可能的。然而,正如romaintaz所指出的,最好使用
rendered
属性。

(以及其他JSTL标记)在大多数情况下都可以在JSF中使用。但是,不能在迭代集合的组件内部使用,例如
。但在您的情况下,您希望
在外部,因此这是可能的。但是,正如romaintaz所指出的,最好使用
rendered
属性。

您的第二个示例也可以呈现为=“#{!empty myBean.list}”,因为“empty”是一个标准的JSF EL操作符。我更喜欢使用第一种方法,因为如果需要添加更多条件,它会使EL更简单。第二个示例也可以呈现为=“#{!empty myBean.list}”,因为“empty”是标准的JSF EL运算符。我更喜欢使用第一种方法,因为如果需要添加更多条件,它可以使EL更简单。
<!-- Idea from Colin Gislason -->
<h:dataTable value="#{myBean.list}"... rendered="#{not empty myBean.list}">
    ...
</h:dataTable>

<h:dataTable value="#{myBean.list}"... rendered="#{not myBean.list.empty}">
    ...
</h:dataTable>