我正在使用PrimeFaces和JSF2。我試圖通過發送登錄名和密碼作爲Ajax請求來驗證用戶身份。在後臺bean的action方法中,如果驗證成功,我試圖驗證用戶並重定向到新視圖。如何從ManagedBean重定向到發送請求是否爲Ajax請求?
這是可能的,而使用primefaces?
因爲我認爲primefaces'p:commandButton
,我只能有ajax行爲或導航。
我正在使用PrimeFaces和JSF2。我試圖通過發送登錄名和密碼作爲Ajax請求來驗證用戶身份。在後臺bean的action方法中,如果驗證成功,我試圖驗證用戶並重定向到新視圖。如何從ManagedBean重定向到發送請求是否爲Ajax請求?
這是可能的,而使用primefaces?
因爲我認爲primefaces'p:commandButton
,我只能有ajax行爲或導航。
是的,只是發送重定向而不是(默認)轉發作爲結果。 <navigation-case>
-less JSF 2.0方式將在操作方法中將?faces-redirect=true
附加到結果字符串。
E.g.
public String login() {
// ...
return "home?faces-redirect=true";
}
以下是另一種您可能會覺得有用的技巧。這是當您通過AJAX從未實現導航的Primefaces屬性調用方法時。例如,我有一個p:tree對象,其中有一個由nodeSelectionListener選擇的方法。
在該方法中,你可以調用重定向這樣的:
String url = (something)
FacesContext fc = FacesContext.getCurrentInstance();
ExternalContext ec = fc.getExternalContext();
try {
ec.redirect(url);
} catch (IOException ex) {
Logger.getLogger(Navigation.class.getName()).log(Level.SEVERE, null, ex);
}
希望對您有所幫助。
嘿!我試了一下,它完美的工作,它解決了我的問題。謝謝。 – 2011-05-17 12:47:13
不客氣。 – BalusC 2011-05-17 12:47:43