學(xué)習(xí)Java-事件竊聽器
在編寫JSF應(yīng)用時(shí),集成應(yīng)用邏輯其實(shí)是對那些產(chǎn)生監(jiān)聽器能懂得的事件的組件分配適當(dāng)?shù)谋O(jiān)聽器。而不必考慮請求和響應(yīng)。JSF支持用類似于面向接口的方式開發(fā)事件監(jiān)聽器,以及將任意方法注冊為事件監(jiān)聽器的能力(只要它具有正確的方法簽名)。
共有4種標(biāo)準(zhǔn)事件:值改變事件、動(dòng)作事件、數(shù)據(jù)模型事件以及階段事件。值改變事件是在用戶修改組件的值后,由輸入控件觸發(fā)。動(dòng)作事件在用戶激活命令組件(比如按鈕)時(shí)產(chǎn)生。數(shù)據(jù)模型事件在數(shù)據(jù)感知組件選擇了一行要處理的數(shù)據(jù)時(shí)產(chǎn)生。階段事件則在JSF處理HTTP請求時(shí)產(chǎn)生。
這些僅僅是框架所定義的標(biāo)準(zhǔn)事件,這并沒有限制使用其他類型的事件。第三方或者你自己,都可以容易地支持不同類型的事件。
值改變事件是當(dāng)用戶在輸入組件中輸入新值時(shí)產(chǎn)生的。可以使用值改變事件監(jiān)聽器來處理值。
簡單的值變事件代碼
- <%@ page language="java" pageEncoding="GB18030"%>
- <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
- <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
- <html>
- <body>
- <f:view>
- <h:form>
- <h:inputText valueChangeListener="#{myform.valueChangeProcess}" />
- <h:commandButton binding="#{myform.changeB}" rendered="false" value=" 提 交 " />
- </h:form>
- </f:view>
- </body>
- </html>
Java代碼
- package djob2008;
- import javax.faces.component.UIComponent;
- import javax.faces.component.html.HtmlInputText;
- import javax.faces.event.ValueChangeEvent;
- /**
- * @author
- * @time Jun 24, 20098:24:24 PM
- */
- public class Myform {
- public UIComponent changeB;
- public void valueChangeProcess(ValueChangeEvent event){
- HtmlInputText sender=(HtmlInputText)event.getComponent();
【編輯推薦】