2012-03-13 81 views

回答

3

GET與POST請求的處理方式不同。 GET'需要最少量的處理(createView/restoreView [aka。Phase 1 - RESTORE_VIEW],然後是renderResponse [aka。Phase 6 - RENDER_RESPONSE]。

XPage Core Runtime確實建立在JSF之上...但是在執行請求處理生命週期方面存在差異 - XPages提供優化來處理複雜的Ajax處理,複雜的部分執行等等。有效地,GET請求的第1階段執行createView/restoreView函數,但繞過某些階段監聽/通知步驟以確保GET請求的最大吞吐量

我在OpenNTF.org/XSnippets上提供了一個簡單示例,以幫助人們在不同環境下使用XPage請求處理生命週期檢查/實踐ances。我鼓勵你看看:

http://openntf.org/XSnippets.nsf/snippet.xsp?id=xpages-request-processing-lifecycle-explorer-code ...

+0

託尼 - 很好的解釋。謝謝! – 2012-03-13 17:12:18

+0

託尼 - 事實上,我問這個問題的原因是在查看您共享的XPages生命週期示例之後。我注意到階段監聽器實際上並沒有被記錄。 – 2012-03-13 17:13:44

3

編輯:Here有人解釋他對XPages生命週期的觀察。由於缺乏文件,他自己做了測試。也許它有點老了。

我不知道肯定,但對JSF的XPages基地,所以我會建議所有 JSF-階段獲得通過循環:

Restore View -> Apply Request Values -> Process Validations -> Update Model Values -> Invoke Application -> Render Response 

enter image description here

但也有一定的方法來打斷這些階段。

希望這個幫助,玩得開心!

1

是的,在初始頁面加載時,它會直接跳轉到渲染響應。當你考慮其他階段的工作時,這是有道理的。沒有數據需要驗證,因爲用戶還沒有機會提交任何數據;他們也不能調用任何事件等。所以第一個請求只是呈現,而後續請求會經歷整個生命週期,除非驗證失敗或被跳過。

是的,「執行」是正確的術語。 :)

+0

感謝您的回答蒂姆。 – 2012-03-13 19:36:32