2015-06-21 9 views
1

Можно ли написать <ui:insert> внутри <ui:include>? Когда я пытаюсь использовать <ui:define name="jsInclude">, содержимое не отображается. При попытке использовать JSF 1.2 это работает, но не с JSF 2.2.ui: вставить внутрь ui: включить не работает

Может ли кто-нибудь помочь мне понять, чего мне не хватает в концепции шаблонов в JSF 2.2?

Спасибо!

Ниже мой код

Это файл шаблона

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:ui="http://xmlns.jcp.org/jsf/facelets"> 

    <head> 
     <title><ui:insert name="browserTitle">My Page</ui:insert></title> 
     <ui:insert name="head"></ui:insert> 
     <ui:include src="myIncludeFile.xhtml" /> 
    </head> 

    <body> 
     <div class="mainContent"> 
      <!-- START OF BODY CONTENT //--> 
      <ui:insert name="body">Default Body</ui:insert> 
      <!-- END OF BODY CONTENT //--> 
     </div> 
    </body> 
</html> 

Это включаемый файл

<span xmlns:ui="http://xmlns.jcp.org/jsf/facelets"> 
    <ui:composition> 
     <ui:insert name="jsInclude"></ui:insert> 
    </ui:composition> 
</span> 

Ниже основной клиент страница

<!DOCTYPE HTML> 
<html 
    xmlns:ui="http://xmlns.jcp.org/jsf/facelets"> 
    <ui:composition template="../templates/myTemplate.xhtml"> 

     <ui:define name="browserTitle">My Page</ui:define> 

     <ui:define name="head"> 
      This is head 
     </ui:define> 

     <ui:define name="jsInclude"> 
      This is js include! 
     </ui:define> 

     <ui:define name="body"> 
      This is body! 
     </ui:define> 
    </ui:composition> 
</html> 
+0

Вам нужно '' внутри '', например '' ui: insert name = "head"> '. Эти страницы шаблонов должны быть помещены в каталог «WEB-INF», чтобы они не обслуживались клиентами, если они требуют шаблонные страницы с использованием соответствующего URL-адреса. – Tiny

+1

Попробуйте изменить прилагаемый файл на ' ... ' –

+0

Я столкнулся с той же проблемой, я пытался извлечь заголовок, который содержит много элементов управления разделами в отдельный файл, чтобы быть более читаемым. Я попробовал 2 решения выше, и оба они не работали. Я отправлю решение, если бы смог его решить. –

ответ