2011-02-04 48 views
7

我正在使用JSF2和GlassFish,PrimeFaces 2.1。JSF PrimeFaces p:commandLink不會重定向到新頁面?

這工作,showCreateProfile()方法被擊中,並且該方法返回「profileForm」,瀏覽器重定向到該頁面:

<h:commandLink action="#{profileHandler.showCreateProfile}" value="#{msg.menu_createNewProfile}" /> 

然而,這不起作用,showCreateProfile()方法來獲取點擊,並且該方法返回「profileForm」,但瀏覽器不會重定向到頁面。我嘗試了三件不同的事情,沒有運氣:

<p:commandLink action="#{profileHandler.showCreateProfile}" value="#{msg.menu_createNewProfile}" /> 

<p:commandLink action="#{profileHandler.showCreateProfile}" value="#{msg.menu_createNewProfile}" ajax="false" /> 

<p:commandLink action="#{profileHandler.showCreateProfile}" value="#{msg.menu_createNewProfile}" ajax="false" immediate="true"/> 

任何想法我做錯了什麼?

羅布

回答

13

的Primefaces' p:commandLink火災默認Ajax請求。它不會返回一個完整的HTTP響應,而只會返回一個部分HTTP響應,它必須由JS在HTML DOM樹中進行更新。

您有兩種基本選擇:

  1. 通過ajax="false"屬性禁用阿賈克斯。然後它會觸發一個正常的HTTP請求。

  2. 通過update="clientid"屬性更新(重新呈現)部分內容(在同一頁上!)。您可以使用rendered屬性來控制內容的呈現。

如果兩者都不起作用,那麼問題就出在別的地方。由於h:commandLink作品和p:commandLink也得到執行的操作方法,那麼它只能說明你沒有運行,你認爲你在試圖將ajax="false"運行的代碼。驗證,保存,重建,重新部署,重新啓動。

4

PrimeFaces不支持了基於導航,您需要使用,如果你想一個Ajax請求或AJAX設置爲false作爲BalusC說中導航重定向,而不是向前。

相關問題