2012-09-29 8 views
6
<ui:define name="description" rendered="false"> 
    <meta name="description" content="do not render" /> 
</ui:define> 

Używam tego kodu na mojej stronie xhtml, kiedy uruchomię aplikację, meta description nadal renderuje. Chcę używać tagu meta description w zależności od pewnych warunków. układ Master:ui: zdefiniuj przy pomocy renderowanego = "false" atrybutu nadal renderującego

<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:ui="http://java.sun.com/jsf/facelets" 
     xmlns:h="http://java.sun.com/jsf/html"> 
    <h:head> 
     <ui:insert name="description" /> 
    </h:head> 
    ........... 
</html> 

strona internetowa:

<ui:composition xmlns="http://www.w3.org/1999/xhtml"      
       xmlns:ui="http://java.sun.com/jsf/facelets" 
       xmlns:h="http://java.sun.com/jsf/html" 
       xmlns:f="http://java.sun.com/jsf/core" 
       xmlns:p="http://primefaces.org/ui" 
       template="/templates/masterLayout.xhtml"> 

    <ui:define name="description" rendered="false"> 
     <meta name="description" content="do not render" /> 
    </ui:define> 
........... 
</ui:composition> 

Odpowiedz

13

<ui:define> jest taghandler która biegnie w czasie kompilacji widoku, a nie UIComponent która biegnie podczas podglądu na czas renderowania. W związku z tym not obsługuje atrybut rendered. Każdy nieobsługiwany atrybut jest po prostu ignorowany.

Zamiast tego należy użyć <ui:fragment>.

<ui:define name="description"> 
    <ui:fragment rendered="false"> 
     <meta name="description" content="do not render" /> 
    </ui:fragment> 
</ui:define> 
Powiązane problemy