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

私はxhtmlページでこのコードを使用しています。私はいくつかの条件に応じてメタ記述タグを使用したい。マスターレイアウト:ui:rendered with rendered = "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> 

Webページ:

<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です。したがって、rendered属性をサポートするのはnotです。サポートされていない属性は無視されます。

代わりに<ui:fragment>を使用してください。

<ui:define name="description"> 
    <ui:fragment rendered="false"> 
     <meta name="description" content="do not render" /> 
    </ui:fragment> 
</ui:define> 
関連する問題