jsf – 如何有條件地呈現?
我希望能夠從PrimeFaces面板元素有條件地省略頁尾:
<p:panel header="some text"> <f:facet name="footer"> #{message} </f:facet> <!-- ... --> </p:panel>
我希望渲染的屬性可以工作:
<p:panel header="some text"> <f:facet name="footer" rendered="#{!empty message}"> #{message} </f:facet> <!-- ... --> </p:panel>
但頁尾仍然呈現,內容空白.看來facet沒有渲染屬性:ofollow,noindex" target="_blank">http://www.jsftoolbox.com/documentation/help/12-TagReference/core/f_facet.html .
這樣做的正確方法是什麼?
我能夠通過交換一個屬性來解決這個問題.總結:
這個工作
<p:panel ...> <f:attribute name="footer" value="#{message}"/> <!-- ... --> </p:panel>
但這不行
<p:panel footer="#{message}"> <!-- ... --> </p:panel>
這也沒有
<p:panel ...> <f:facet name="footer">#{message}</f:facet> <!-- ... --> </p:panel>
也不是這樣
<p:panel ...> <f:facet name="footer"> <h:outputText value="#{message}" rendered="#{!empty message}"/> </f:facet> <!-- ... --> </p:panel>
“工作”我的意思是:
當#{message}為空或為null時,不會顯示頁尾 – 而不僅僅是一個空的頁尾,否則,使用指定的文字正確地呈現頁尾.
http://stackoverflow.com/questions/4369114/how-do-i-conditionally-render-an-ffacet