簡體   English   中英

JSF中的ActionListener階段

[英]ActionListener phases in JSF

HI,

我對在JSF bean中調用ActionListener方法有疑問。 例如,JSF表單的每個請求或提交都經歷了六個階段的生命周期。 但是,當我們觸發特定事件(如動作偵聽器或值更改偵聽器)時,是否存在與該請求關聯的生命周期?

請澄清我。

在實際操作方法之前的調用操作階段期間調用任何操作偵聽器。 要調用哪些動作偵聽器方法是根據與提交相關聯的UICommand組件的actionListener屬性確定的。

成功轉換/驗證提交的值之后,並且當提交的值與初始值不同時, 才會在驗證階段調用任何值更改偵聽器(或在特定UIInput組件的immediate="true"時應用請求值階段)。 要調用哪些值更改偵聽器方法是基於與提交關聯的UIInput組件的valueChangeListener屬性確定的。

不,他們沒有自己的生命周期。 當他們完成執行並返回時,它仍處於生命周期的同一階段。 在調用valueChangeListener ,JSF將繼續轉換/驗證下一個UIInput組件,或者如果沒有,則繼續下一階段。 在調用actionListener ,JSF將繼續使用下一個actionListener ,如果沒有,則調用實際操作方法。


更新 :再次閱讀您的評論后,我認為我現在看到您對特別是價值變化傾聽者的懷疑。 您似乎認為默認情況下,它會在客戶端更改事件期間立即向服務器端發出一個全新的請求。 它是不是默認。 您只能通過添加一小段JavaScript代碼來實現這一點,該代碼在HTML輸入字段的更改事件期間提交整個HTML表單。

onchange="this.form.submit()"

這部分與JSF無關。 這是一個簡單的HTML屬性。 在webbrowser中打開頁面,右鍵單擊並選擇“ 查看源” 你會看到它就在那里。 在瀏覽器中禁用JavaScript或在JSF代碼中刪除它,您將看到它將不再起作用。 你會需要按提交按鈕自己把一切運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM