隨筆-112  評(píng)論-73  文章-0  trackbacks-0

          JSF提供一個(gè)好處就是事件,例如可以對(duì)組件的值的改變提供一個(gè) Listener,和Swing有點(diǎn)相象.

          下面以實(shí)例說(shuō)明:

          為一個(gè)組件定義一個(gè)偵聽器有兩種方法:

          第一種方法:偵聽方法所在類不用實(shí)現(xiàn)任何接口。

          public void idChange(ValueChangeEvent event) {
          System.out.println("ID的值改變了!");
          FacesContext.getCurrentInstance().renderResponse();

          }

          這個(gè)方法只需要定義在BEAN中就可以了。接受一個(gè)Event參數(shù)。

          頁(yè)面中這樣寫:

          <h:inputText value="#{roseBean.rose.id}" valueChangeListener="#{roseBean.idChange}" onchange="this.form.submit()" immediate="true"/>

          第二種方法:偵聽方法實(shí)現(xiàn)javax.faces.event.ValueChangeListener接口。

          public class RoseIdChange implements ValueChangeListener {

          public void processValueChange(ValueChangeEvent arg0)
          throws AbortProcessingException {
          System.out.println("change");

          FacesContext.getCurrentInstance().renderResponse();
          }
          }


          頁(yè)面的寫法是這樣的:

          <h:inputText value="#{roseBean.rose.id}" onchange="this.form.submit()" immediate="true">
          <f:valueChangeListener type="cn.xiangyunsoft.web.jsf.listener.RoseIdChange" />
          </h:inputText>

          在這兩種方法中的頁(yè)面代碼中都有 immediate="true" 這個(gè)屬性,它表示為是即時(shí)事件。

          在處理方法中都有

          FacesContext.getCurrentInstance().renderResponse();
          表示這個(gè)方法處理完成之后直接跳到JSF生命周期的最后一個(gè)階段。

          但是這樣還有一個(gè)問題就是:

          如果在BEAN里面有一個(gè)list屬性,是從數(shù)據(jù)庫(kù)里取出來(lái)的數(shù)據(jù),在頁(yè)面上經(jīng)表格的形式體現(xiàn),每當(dāng)這個(gè)值變事件發(fā)生的時(shí)候都會(huì)從數(shù)據(jù)庫(kù)中重得取數(shù)據(jù),(當(dāng)然這個(gè)BEAN的scop 是request),這樣就多一次訪問數(shù)據(jù)庫(kù),如果不是在getList()中直接連接數(shù)據(jù),通過(guò)其他方法取數(shù)放到list中,這個(gè)值變事件就不會(huì)發(fā)生,或發(fā)生后表格的數(shù)據(jù)就沒有了。

          看來(lái)只能用ajax了!


          Technorati :

          posted on 2007-06-07 10:06 Libo 閱讀(819) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          <2007年6月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          1234567

          常用鏈接

          留言簿(6)

          隨筆分類(54)

          隨筆檔案(109)

          其他BLOG

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 达尔| 罗城| 正宁县| 广宁县| 屯门区| 太湖县| 黄大仙区| 灯塔市| 黎平县| 宁安市| 蒙城县| 黄梅县| 海丰县| 丘北县| 宽甸| 轮台县| 囊谦县| 报价| 屏东市| 宁南县| 鸡东县| 三明市| 女性| 和平县| 长春市| 兴义市| 新巴尔虎左旗| 杭锦旗| 昂仁县| 屯留县| 正定县| 崇仁县| 南充市| 民勤县| 鄄城县| 内乡县| 靖边县| 东乌| 南宫市| 大足县| 东方市|