2011-03-23 69 views
3

如果我把,例如,下列各項組件,點擊它,它表現爲預期:JSF導航與阿賈克斯

<h:commandLink value="Click me" action="anotherPage.jsf" /> 

但如果我使用Ajax:

<h:commandLink value="Click me" action="anotherPage.jsf"><f:ajax /></h:commandLink> 

它不導航到其他頁面。 我錯過了什麼嗎?這不應該工作嗎?

另一個問題是,當我點擊會話超時後使用ajax的按鈕時,應用程序將重定向到登錄頁面,但它不會加載css文件。

任何想法?

親切的問候,

卡洛斯·費雷拉

回答

1

從我的理解AJAX是用來更新當前頁面的組件,而不是導航到其他頁面。

6

可以如果您發送重定向,請執行此操作。

action="anotherPage.jsf?faces-redirect=true" 

但是,我完全沒有看到使用Ajax進行導航的重點/好處。

+0

嗯,我只是在探索我的選擇。我試圖找到POST /後退按鈕問題的解決方法。 – 2011-03-23 15:04:38

+0

@BalusC Hi BalusC。剛剛找到這個[page](http://weblogs.java.net/blog/driscoll/archive/2009/05/redirecting_fro.html)。您的解決方案是否是該解決方案的捷徑? – 2011-03-23 15:04:50

+0

@Matt:如果不需要調用任何操作方法,是的。否則,你也可以在action方法的末尾執行'return'anotherPage?faces-redirect = true「;'。 Jim的解決方案對於內部頁面而言過於複雜。 – BalusC 2011-03-23 15:07:26

0

如果您的頁面上有很多ajax請求,那麼將命令按鈕的請求ajaxifying意味着頁面上的所有其他驗證(來自其他ajax請求)都將在導航到下一頁之前完成。否則,如果沒有按鈕的ajax請求,它生成的http請求將會吹走這些其他請求,直接導航到下一個頁面而無需等待它們完成。

+0

這應該是對OP問題的評論,因爲它不會嘗試回答它 – Yaroslav 2012-10-06 13:44:53