facelet - вложенный <ui: insert> - PullRequest
3 голосов
/ 20 апреля 2010

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

<ui:insert name="container1">
 some layout stuff (div and all)
 <ui:insert name="container1Content">
 </ui:insert></ui:insert>

определение вложенной вставки для каждого контейнера и содержимого.

Теперь в шаблоне клиента на основе того, что нужно Я отключаю контейнер, который не нужен, как

<ui:define name="container1/>

иначе, если нужен контейнер, просто определите содержимое как

<ui:define name="container1Content">doSomething</ui:define>

Пожалуйста, дайте мне знать, если вы, ребята, видите какие-либо проблемы с этим подходом, потенциальную проблему или альтернативный подход для аналогичного сценария.

Большое спасибо.

Мэдди

1 Ответ

1 голос
/ 04 марта 2011

Тег вставки пользовательского интерфейса Facelets является шаблонным тегом, поэтому да, вы правильно его используете.

В предыдущем проекте я реализовал несколько макетов, используя Facelets, и вставил несколько заполнителей, используя ui-insert, что позволило приложениям, использующим эти макеты, настраивать его части (например, изменять заголовок страницы, вставлять пользовательский контент в заголовок). документов, ...

...