Java 如何有条件地隐藏h:outputLink?

Java 如何有条件地隐藏h:outputLink?,java,jsf,jakarta-ee,Java,Jsf,Jakarta Ee,如何基于支持bean中的布尔值隐藏h:ouputLink 对于禁用,我希望如下所示: <h:commandButton disabled="#{backing.property}" /> <h:panelGrid id="myPanelGrid"> .... <h:outputLink id="myComponent" rendered="#{backing.property}" /> .... <h:panelGrid> <

如何基于支持bean中的布尔值隐藏
h:ouputLink

对于禁用,我希望如下所示:

<h:commandButton disabled="#{backing.property}" />
<h:panelGrid id="myPanelGrid">
  ....
  <h:outputLink id="myComponent" rendered="#{backing.property}" />
  ....
<h:panelGrid>

<h:commandButton value="show" action="#{backing.setPropertyToTrueMethod}" update="myPanelGrid" />

但我如何才能完全隐藏?

使用:

<h:commandButton id="myComponent" rendered="#{backing.property}" />
更新

myComponent将被“隐藏”,因为它不会被渲染。 不渲染myComponent意味着您需要对围绕myComponent的UIComponent进行更新(例如,使用ajax请求),如下所示:

<h:commandButton disabled="#{backing.property}" />
<h:panelGrid id="myPanelGrid">
  ....
  <h:outputLink id="myComponent" rendered="#{backing.property}" />
  ....
<h:panelGrid>

<h:commandButton value="show" action="#{backing.setPropertyToTrueMethod}" update="myPanelGrid" />

....
....

有关API规范,请参见:

是,但我查找了
h:outputLink
。根据您的提示,我发现我可以在
h:panelGroup rendered=..
中包装h:commandLink(或任何其他内容),这样不会隐藏组件,也不会在视图中渲染它。你应该把条款分开。您应该警告OP,为了更新(重新呈现)视图中的组件(即隐藏和显示带有ajax请求的链接),组件应该由类似
的UIContainer包装,并且您应该更新此UIContainer以显示链接。