Как условно включить файл в мой шаблон, используя JSF и Facelets? - PullRequest
6 голосов
/ 21 января 2012

Итак, мой шаблон включает footer.xhtml

<ui:include src="/WEB-INF/testtaker/Footer.xhtml"/>

Что я хочу сделать, так это изменить нижний колонтитул, основываясь на предпочтениях некоторых пользователей, на другой нижний колонтитул _ ???. Xhtml файл.

Итак, я бы хотел сделать что-то вроде этого:

<ui:include src="/WEB-INF/testtaker/Footer_001.xhtml">
      Content from original Footer.xhtml
</ui:include>

и если Footer_001.xhtml не существует, то пусть он использует содержимое между тегами, в противном случае используйте содержимое из файла.

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

Есть мысли?

1 Ответ

4 голосов
/ 21 января 2012

Вы можете использовать EL в <ui:include src>.

<ui:include src="/WEB-INF/testtaker/Footer#{user.prefs.footerId}.xhtml" />

Если #{user.prefs.footerId} вернет null или пустую строку, она станет просто Footer.xhtml.

...