Facelet - вложенный ‹ui:insert›

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

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

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

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

Мэдди


person Madhur Kumar    schedule 20.04.2010    source источник


Ответы (1)


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

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

person dSebastien    schedule 04.03.2011