2013-06-29 164 views
0

我有一個Web應用程序,我會動態加載外部JSF文件,例如,通過頁面上的表單。加載外部JSF頁面

是否可以將JSF頁面加載爲字符串(WAR之外的文件)並將其傳遞給Face Servlet進行解釋?

回答

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中。在此面板組中,您可以根據某些條件呈現文件。

更新:如何經由ResourceResolver來加載外部Facelets的討論herehere

+0

好吧,我想我沒有精確解釋。我想在我的web應用程序中加載一個放置在服務器上的某個目錄中的JSF頁面,用於C:\ myPages \ myfile.xhtml下的emaple。那可能嗎? – micuss

+1

對不起,我錯過了你。這可以通過自定義[ResourceResolver](http://docs.oracle.com/javaee/6/api/javax/faces/view/facelets/ResourceResolver.html)完成。通常你會從類路徑加載文件,但你可以嘗試不同的方式。見[這個問題](http://stackoverflow.com/questions/5587808/how-to-use-facelets-composition-with-files-from-another-context)。 – lefloh

+0

它的工作原理。非常感謝。 – micuss