我有以下<h:panelGrid>
:
<h:panelGrid columns="2" id="panelGrid" >
<!-- heading -->
<f:facet name="header">
User Details
</f:facet>
<h:outputLabel value="#{bundle.ViewUserdetailsLabel_id}"/>
<!-- adding in a small effect here that will fade a message when a user hovers over the id number or username -->
<h:outputLink id="id1" value="#">
<h:outputText id="id" value="#{userdetailsController.selected.id}" title="#{bundle.ViewUserdetailsTitle_id}"/>
</h:outputLink>
<p:tooltip for="id" value="This is your I.D. Number" showEffect="fade" hideEffect="fade" />
<h:outputText value="#{bundle.ViewUserdetailsLabel_username}"/>
<h:outputLink id="username1" value="#">
<h:outputText id="username" value="#{userdetailsController.selected.username}" title="#{bundle.ViewUserdetailsTitle_username}"/>
</h:outputLink>
<p:tooltip for="username" value="Your registered username, this can be changed" showEffect="fade" hideEffect="fade" />
<f:facet name="footer"></f:facet>
</h:panelGrid>
我原以为它会显示为
用户详细信息Id:500用户名:zzzzzzzz
然而,相反,它显示为一些空单元格:
用户详细信息Id:500用户名:zzzzzzzzzz
当我使用<p:panelGrid>
而不是<h:panelGrid>
时,同样的问题也会消失。这是怎么造成的,我该如何解决?
在面板网格中,每个直属子组件都算作一个表单元格。
这些<!-- heading -->
和<!-- adding ... -->
注释行中的每一个都算作单个子行。因此,这些也将每一个计算为单个表单元。
要解决这个问题,只需通过以下web.xml
条目告诉Facelets在视图构建期间跳过所有注释:
<context-param>
<param-name>javax.faces.FACELETS_SKIP_COMMENTS</param-name>
<param-value>true</param-value>
</context-param>
还有<p:tooltip>
,它也算作一个表单元格,尽管它不代表任何直接内容。您需要将工具提示及其目标组件封装在<h:panelGroup>
中,以便它表示单个表单元格(此外,您也可以将注释放在其中)。
<h:outputLabel value="#{bundle.ViewUserdetailsLabel_id}"/>
<h:panelGroup>
<!-- adding in a small effect here that will fade a message when a user hovers over the id number or username -->
<h:outputLink id="id1" value="#">
<h:outputText id="id" value="#{userdetailsController.selected.id}" title="#{bundle.ViewUserdetailsTitle_id}"/>
</h:outputLink>
<p:tooltip for="id" value="This is your I.D. Number" showEffect="fade" hideEffect="fade" />
</h:panelGroup>
<h:outputText value="#{bundle.ViewUserdetailsLabel_username}"/>
<h:panelGroup>
<h:outputLink id="username1" value="#">
<h:outputText id="username" value="#{userdetailsController.selected.username}" title="#{bundle.ViewUserdetailsTitle_username}"/>
</h:outputLink>
<p:tooltip for="username" value="Your registered username, this can be changed" showEffect="fade" hideEffect="fade" />
</h:panelGroup>