У меня проблемы с шаблоном фейслета. Я хотел разделить часть содержимого, чтобы можно было использовать его где-нибудь еще.
Поэтому я изменил этот код :
<!DOCTYPE html>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
template="/layout/template.xhtml">
<ui:define name="head">
<title>Title</title>
</ui:define>
<ui:define name="header">
<h3>Header</h3>
</ui:define>
<ui:define name="content">
<table><tr><td>table</td></tr></table>
</ui:define>
</ui:composition>
К этому:
<!DOCTYPE html>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
template="/layout/template.xhtml">
<ui:define name="head">
<title>Title</title>
</ui:define>
<ui:include src="/admin/admin_generic.xhtml"/>
</ui:composition>
И внутри admin-generic.xhtml
я заключил код в ui: композицию.
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:define name="header">
<h3>Header</h3>
</ui:define>
<ui:define name="content">
<table><tr><td>table</td></tr></table>
</ui:define>
</ui:composition>
Но ничего не отображается. Я просто получаю пустую страницу, без Ошибки. Неправильно ли использовать ui: композиция
? Я пробовал с ui: component
, но это тоже не помогло.
Обновление : в соответствии с моими Facelets Essentials В руководстве говорится:
Тег
ui: include
можно использовать для включения другого файла Facelets в ваш документ. Он просто включает любой указанный вами исходный файл. Ты можешь включить любой файл Facelets с тегамиui: component
илиui: композиция
(которые обрезают контент за пределами себя) или просто фрагмент XHTML или XML.
Это то, что происходит? Обрезано ли содержимое за пределами включения? Как я могу просто включить страницу без обрезки внешнего содержимого?