Загрузить внешнюю страницу JSF

У меня есть веб-приложение, и я бы динамически загружал внешние файлы JSF, например, по форме на странице.

Можно ли загрузить страницу JSF в виде строки (файл вне WAR) и передать ее сервлету Face для интерпретации?


person micuss    schedule 29.06.2013    source источник


Ответы (1)


Я не знаю, что вы имеете в виду под «динамической загрузкой внешних файлов JSF». Если вы хотите заменить части представления через ajax фрагментами, которые вы храните в отдельном файле, вы можете сделать это:

<h:commandButton value="click me">
    <f:ajax render="panel" listener="#{bean.actionListener}" />
</h:commandButton>

<h:panelGroup id="panel">
    <h:panelGroup rendered="#{bean.condition}">
        <ui:include src="snippet.xhtml" />
    </h:panelGroup>
    <h:panelGroup rendered="#{bean.anotherCondition}">
        <ui:include src="snippet2.xhtml" />
    </h:panelGroup>
</h:panelGroup>

Сделайте ajax-вызов и перерендерите группу panelGroup. В этой группе панелей вы можете отображать свои файлы на основе некоторых условий.

Обновление: как загружать внешние Facelets через ссылку ResourceResolver обсуждается здесь и здесь.

person lefloh    schedule 29.06.2013
comment
Хорошо, я думаю, что я не объяснил это точно. Я хочу загрузить в свое веб-приложение страницу JSF, которая находится в каком-то каталоге на сервере, например, в C:\myPages\myfile.xhtml. Это возможно? - person micuss; 29.06.2013
comment
Извините, я неправильно вас понял. Это можно сделать с помощью пользовательского ResourceResolver. Обычно вы загружаете файлы из пути к классам, но вы можете попробовать разные способы. См. этот вопрос. - person lefloh; 29.06.2013