Заредете външна JSF страница

Имам уеб приложение и бих заредил динамично външни JSF файлове, например, чрез формуляр на страница.

Възможно ли е да се зареди JSF страница като низ (файл извън WAR) и да се предаде на Face Servlet за интерпретиране?


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. В тази panelGroup можете да визуализирате вашите файлове въз основа на някои условия.

Актуализация: Как да заредите външни Facelets чрез ResourceResolver се обсъжда тук и тук.

person lefloh    schedule 29.06.2013
comment
Добре, мисля, че не го обясних точно. Искам да заредя в моето уеб приложение JSF страница, която е поставена в някаква директория на сървъра, за emaple под C:\myPages\myfile.xhtml. Това възможно ли е? - person micuss; 29.06.2013
comment
Съжалявам, грешно съм те разбрал. Това може да се направи от персонализиран ResourceResolver. Обикновено бихте заредили файловете от classpath, но можете да опитате различни начини. Вижте този въпрос. - person lefloh; 29.06.2013