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

प्रतिपादन मैं अपने एक्सएचटीएमएल पेज में इस कोड का उपयोग कर रहा है, जब मैं अनुप्रयोग चलाने, मेटा विवरण अभी भी प्रदर्शित हो रहा है साथ परिभाषित करते हैं। मैं कुछ स्थितियों के आधार पर मेटा विवरण टैग का उपयोग करना चाहता हूं। मास्टर लेआउट:ui: गाया = "false" विशेषता अभी भी

<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> 

वेब पेज:

<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> 

उत्तर

13

<ui:define> एक taghandler जो दृश्य का निर्माण समय के दौरान चलाता है, न कि एक UIComponent जो दृश्य के दौरान चलाता है समय प्रस्तुत करना। इसलिए notrendered विशेषता का समर्थन करता है। कोई भी असमर्थित विशेषता केवल सादे अनदेखा है।

इसके बजाय <ui:fragment> का उपयोग करें।

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