隨筆-348  評論-598  文章-0  trackbacks-0
                  今天同事開發(fā)的時候碰到一件很郁悶的事情,就是同樣的選擇控件在其他頁面使用沒有任何問題,在他的一個頁面里面使用第一次正常,之后打開就總是報錯,報錯提示就是控件ID重復,好像是duplicate id 云云的。
                  我們嘗試了給每個控件都設定一個id,還是報錯,如果去掉另一個跟它有沖突的選擇控件,就沒問題,但是不可能去掉的,因為那一項需要去選擇。后來想了很多辦法,都不是很好,最后同事找到了一個辦法,在我封裝的底層BaseBean中,給程序生成的選擇項控件手動添加id:
                      items = new UISelectItems();
                      items.setId(
          "j_id_"+String.valueOf(System.nanoTime()));
          這樣,每個控件都有了一個唯一的ID,問題解決了。
          提示:不可以用純數(shù)字做ID,會出現(xiàn)錯誤的。

          這里使用了納秒來生成編號,因為毫秒還是經(jīng)常會出現(xiàn)id重復。

          不知道為什么會有這個問題,其他頁面調(diào)用相同的底層都沒有任何問題,只有這個頁面會有,可以確定跟我們寫的代碼沒有關系,因為頁面重新做過的,一個控件一個控件添加的試的,就是那兩個控件同時出現(xiàn)時報錯,所以我想是不是底層生成控件ID那有bug,自己手動生成控件ID就沒有任何問題。以后有機會,再研究下源碼。

          注意一下,大部分控件ID重復都是出現(xiàn)在選擇之類的控件上面。

          ---------------------------------------------------------
          專注移動開發(fā)

          Android, Windows Mobile, iPhone, J2ME, BlackBerry, Symbian
          posted on 2008-11-26 15:31 TiGERTiAN 閱讀(1863) 評論(4)  編輯  收藏 所屬分類: JavaJSF

          評論:
          # re: JSF生成控件ID重復的解決辦法 2008-11-27 16:34 | fee
          注意下組件的嵌套,另外注意定義ID和自動分配ID的沖突。應該不是bug  回復  更多評論
            
          # re: JSF生成控件ID重復的解決辦法 2008-11-27 17:03 | TiGERTiAN
          @fee
          組件的嵌套都注意的,我們沒有自定義ID,全部自動生成,第一遍打開頁面是好的,第二遍打開就有問題了,而且很莫名其妙,幾個人都重新做了,還是有問題,不知道是不是我們自己寫的框架跟它有沖突,但檢查代碼,都沒有發(fā)現(xiàn)什么問題,其他頁面也是好的。  回復  更多評論
            
          # re: JSF生成控件ID重復的解決辦法[未登錄] 2008-12-01 10:23 | 靈韻
          我們那時候用的是NETBEANS,也遇到這個問題,然后我們在頁面的prerender()方法中調(diào)用了
          public void prerender() {
          if(super.isPostBack())
          layoutPanel1.getChildren().remove(layoutPanel1.findComponent("lstRole"));
          }  回復  更多評論
            
          # re: JSF生成控件ID重復的解決辦法 2008-12-01 12:32 | TiGERTiAN
          @靈韻
          你是移除已存在的控件?還是固定ID的,我們這個有點蹊蹺就是,所有ID都是JSF自己生成的還有這種錯誤。。。汗。。。  回復  更多評論
            
          主站蜘蛛池模板: 景洪市| 封丘县| 娱乐| 冀州市| 滨州市| 泾川县| 高青县| 桦南县| 古蔺县| 蚌埠市| 青铜峡市| 广南县| 永宁县| 德兴市| 湖北省| 普定县| 林周县| 斗六市| 吴江市| 全椒县| 上高县| 确山县| 石景山区| 永新县| 敦化市| 富裕县| 尖扎县| 远安县| 高平市| 皋兰县| 衡南县| 濮阳县| 沧源| 石家庄市| 仁布县| 鲜城| 保康县| 台北市| 正定县| 青州市| 永兴县|