如果我有一個JSF頁面,我想鏈接到哪裏,我不需要傳遞任何東西到該頁面,並且不需要在我鏈接的頁面上執行任何驗證,我應該總是使用h :鏈接?何時應該使用h:鏈接而不是h:commandLink?
不使用h:commandLink(使用immediate =「true」或execute =「@ this」)會丟失什麼嗎?
在這種情況下h:link和h:commandLink有什麼不同嗎?
如果我有一個JSF頁面,我想鏈接到哪裏,我不需要傳遞任何東西到該頁面,並且不需要在我鏈接的頁面上執行任何驗證,我應該總是使用h :鏈接?何時應該使用h:鏈接而不是h:commandLink?
不使用h:commandLink(使用immediate =「true」或execute =「@ this」)會丟失什麼嗎?
在這種情況下h:link和h:commandLink有什麼不同嗎?
h:link
將激發完整的GET請求。只有JSF生命週期階段1(恢復視圖)和6(呈現響應)將被調用。沒有轉換,沒有驗證,沒有行動。
因此immediate="true"
和execute="@this"
將不起作用(它們根本不可用於h:link
)。
如果輸入數據需要在服務器上處理,則使用h:link
進行純頁面導航和h:commandLink
(啓動POST請求)。
附錄:
按BalusC的評論生命週期階段2-5如果目標頁面包含f:viewParam
s的不跳過的GET請求。
在原始問題中,立即執行的引用是針對commandLink的,而不是h:link – BestPractices
第一段不完全正確。當目標頁面爲'
@BalusC感謝您的提示。更新了我的答案。 –
可能重複[何時應該使用h:outputLink而不是h:commandLink?](http://stackoverflow.com/questions/4317684/when-should-i-use-houtputlink-instead-of-hcommandlink) – BalusC