2017年1月27日 星期五

h:inputxxx 標籤所支援的 ajax behavior event 有哪些?


技術問題:

jsf 提供 f:ajax 標籤讓元件具備 Ajax 處理的能力。f:ajax 的 event 屬性要指定與攔截的客戶端的事件[1]。若沒有指定,會使用預設的事件。

h:inputText, h:inputTextArea, h:inputSecret 標籤提供哪些 ajax 事件行為呢?

參考答案:

h:inputText, h:inputTextArea, h:inputSecret 三個標籤的元件皆是屬於 javax.faces.component.EditableValueHolder 類別的元件。這類的元件的預設 ajax 事件為 valueChange。詳細的事件如下:



游標(focus) 相關:blur, focus
輸入值的處理: change, valueChange, select.
鍵盤動作: keydown keypress keyup
滑鼠點擊欄位: click, dblclick
滑鼠位置:mousemove mouseout mouseover
滑鼠上的按鍵動作:mousedown, mouseup

f:ajax 所能攔截的客戶端的事件視所套用的元件而定,例如 h:inputText 和 h:commandButton 的 ajax event 便不同。一個原則可以幫助記憶:JSF 元件所支援的 ajax event 和 HTML 元素所支援的 DOM 模型事件是大致相同的。

更多的 HTML DOM event 參考:http://www.w3schools.com/jsref/dom_obj_event.asp

參考資料:
[1]  Using Ajax with Facelets [http://docs.oracle.com/javaee/6/tutorial/doc/gkabr.html#gkafn]

沒有留言: