JSF / Facelets: как создать вспомогательное представление в шаблоне, которое по умолчанию устанавливается на что-либо, если оно не задано явно? - PullRequest
0 голосов
/ 16 августа 2011

У меня есть шаблон страницы:

<?xml version="1.0" encoding="UTF-8"?>
<rich:page xmlns="http://www.w3.org/1999/xhtml"
           ...>

  <f:facet name="header">
    <ui:include src="/templating/subviews/header.xhtml" />
  </f:facet>
  <rich:layout>
    <rich:layoutPanel position="left" width="20%" style="margin: 0px auto 0px 1%;">
      <ui:insert name="navigation" />
      <ui:include src="/templating/subviews/login.xhtml" />
    </rich:layoutPanel>
    <rich:layoutPanel position="right" width="80%" style="margin: 0px 1% 0px auto; padding: 0px 0px;">
      <rich:panel styleClass="content">
        <ui:insert name="content" />
      </rich:panel>
    </rich:layoutPanel>
  </rich:layout>
</rich:page>

Не останавливайтесь перед RichFaces, он просто создает макет из двух столбцов.Результат можно посмотреть в действии здесь:

http://www.bbstats.net/

Теперь возникает вопрос: как создать необязательный раздел входа в систему / авторизации, который по умолчанию будет использовать панель входа в систему <ui:include src="/templating/subviews/login.xhtml" />если в шаблон ничего не было передано, но если что-то было явно задано или передано, панель входа в систему не отображалась бы?

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

Примечание. Я ищу способ, чтобы шаблон использовал интерфейс панели входа в систему: по умолчанию включать и передавать что-то только для немногих клиентов, которыепереопределить это.Я не хочу требовать, чтобы большинство клиентов шаблонов передавало значение.Я ищу механизм по умолчанию / резервный.

Как это делается?

...