從制造到創造
          軟件工程師成長之路
          posts - 292,  comments - 96,  trackbacks - 0

          本項目由繁體中文和英文兩種環境,切換語言的鏈接在頁眉的右邊,如圖:
          snap0003.jpg

          通過點擊“English”,可以將整個系統的語言環境轉換為“英文”,下面是從“英文”環境轉為“繁體中文”環境后的頁面情況:
          snap0002.jpg

          標簽已經轉換為“繁體”環境,但是下拉列表中的內容還是“英文”的內容,產生這個Bug的原因是由于整個下拉的List存儲在生命期為 Session 的 DBean 中,而此所有 List 的初始化的代碼都在 DBean 的構造函數中,這樣,即使改變語言,由于DBean的生命期未結束,List的內容不會更根據語言環境而改變。

          ???? /** MaintainClaimNoticeDBean
          ?????
          */
          ????
          public ?MaintainClaimNoticeDBean()?{
          ????????
          this .queryVO? = ? new ?QueryClaimNoticeDataVO();
          ????????
          this .nonGohVO? = ? new ?MaintainClaimNoticeDataVO();
          ????????
          this .gohVO? = ? new ?MaintainClaimNoticeGohDataVO();
          ????????
          this .cnService? = ? new ?MaintainClaimNoticeDataService();
          ????????
          this .msgService? = ? new ?MessageService();
          ????????
          this .gohService? = ? new ?MaintainClaimNoticeGohDataService();
          ????????CodeTableService?codeTableService?
          = ? new ?CodeTableService();
          ????????
          try ?{
          ????????????
          this .selectItemCompanyFlag? = ?Tools
          ????????????????????.ConverterListtoSelectItem(codeTableService
          ????????????????????????????.getSelectOneListbox(
          ????????????????????????????????????GroupCodeConstant.COMPANY_FLAG,?getLocale()));
          ????????????
          this .selectItemHandleStatus? = ?Tools
          ????????????????????.ConverterListtoSelectItem(codeTableService
          ????????????????????????????.getSelectOneListbox(
          ????????????????????????????????????GroupCodeConstant.HANDLE_STATUS,
          ????????????????????????????????????getLocale()));
          ????????????
          this .selectItemClaimNoticeClass? = ?Tools
          ????????????????????.ConverterListtoSelectItem(codeTableService
          ????????????????????????????.getSelectOneListbox(
          ????????????????????????????????????GroupCodeConstant.CLAIMNOTICE_CLASS,
          ????????????????????????????????????getLocale()));
          ????????????
          this .selectItemPolicyStatus? = ?Tools
          ????????????????????.ConverterListtoSelectItem(codeTableService
          ????????????????????????????.getSelectOneListbox(
          ????????????????????????????????????GroupCodeConstant.POLICY_STATUS,
          ????????????????????????????????????getLocale()));
          ????????????
          this .selectItemReCompanyCode? = ?Tools
          ????????????????????.ConverterListtoSelectItem(codeTableService
          ????????????????????????????.getSelectOneListbox(
          ????????????????????????????????????GroupCodeConstant.RE_COMPANY_CODE,
          ????????????????????????????????????getLocale()));
          ????????????
          this .selectItemReinsuranceLevel? = ?Tools
          ????????????????????.ConverterListtoSelectItem(codeTableService
          ????????????????????????????.getSelectOneListbox(
          ????????????????????????????????????GroupCodeConstant.REINSURANCE_LEVEL,
          ????????????????????????????????????getLocale()));
          ????????}?
          catch ?(BusiException?e)?{
          ????????????
          this .setDisplayMsg(e.getExceptionMessage());
          ????????}
          ????}


          修改辦法:
          將所有下拉列表的初始化代碼放在第一個下拉列表的get方法中:這里CompanyFlag是第一下拉列表:

          ???? /**
          ?????*?Method?getSelectItemCompanyFlag.
          ?????*?
          ?????*?
          @return ?SelectItem[]
          ?????
          */
          ????
          public ?SelectItem[]?getSelectItemCompanyFlag()?{
          ????????
          this .reset();

          ????????CodeTableService?codeTableService?
          = ? new ?CodeTableService();
          ????????
          try ?{
          ????????????
          this .selectItemCompanyFlag? = ?Tools
          ????????????????????.ConverterListtoSelectItem(codeTableService
          ????????????????????????????.getSelectOneListbox(
          ????????????????????????????????????GroupCodeConstant.COMPANY_FLAG,?getLocale()));
          ????????????
          this .selectItemHandleStatus? = ?Tools
          ????????????????????.ConverterListtoSelectItem(codeTableService
          ????????????????????????????.getSelectOneListbox(
          ????????????????????????????????????GroupCodeConstant.HANDLE_STATUS,
          ????????????????????????????????????getLocale()));
          ????????????
          this .selectItemClaimNoticeClass? = ?Tools
          ????????????????????.ConverterListtoSelectItem(codeTableService
          ????????????????????????????.getSelectOneListbox(
          ????????????????????????????????????GroupCodeConstant.CLAIMNOTICE_CLASS,
          ????????????????????????????????????getLocale()));
          ????????????
          this .selectItemPolicyStatus? = ?Tools
          ????????????????????.ConverterListtoSelectItem(codeTableService
          ????????????????????????????.getSelectOneListbox(
          ????????????????????????????????????GroupCodeConstant.POLICY_STATUS,
          ????????????????????????????????????getLocale()));
          ????????????
          this .selectItemReCompanyCode? = ?Tools
          ????????????????????.ConverterListtoSelectItem(codeTableService
          ????????????????????????????.getSelectOneListbox(
          ????????????????????????????????????GroupCodeConstant.RE_COMPANY_CODE,
          ????????????????????????????????????getLocale()));
          ????????????
          this .selectItemReinsuranceLevel? = ?Tools
          ????????????????????.ConverterListtoSelectItem(codeTableService
          ????????????????????????????.getSelectOneListbox(
          ????????????????????????????????????GroupCodeConstant.REINSURANCE_LEVEL,
          ????????????????????????????????????getLocale()));
          ????????}?
          catch ?(BusiException?e)?{
          ????????????
          this .setDisplayMsg(e.getExceptionMessage());
          ????????}

          ????????
          return ? this .selectItemCompanyFlag;
          ????}

          這樣,每次進入頁面,第一個標簽中的下拉列表框的內容都由JSF通過該標簽的getter方法得到。
          ?

          posted on 2007-03-08 10:41 CoderDream 閱讀(416) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          <2007年3月>
          25262728123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          常用鏈接

          留言簿(9)

          我參與的團隊

          隨筆分類(245)

          隨筆檔案(239)

          文章分類(3)

          文章檔案(3)

          收藏夾(576)

          友情鏈接

          搜索

          •  

          積分與排名

          • 積分 - 458376
          • 排名 - 114

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 抚顺县| 正定县| 玉门市| 梁山县| 大洼县| 司法| 黄冈市| 连城县| 渝北区| 武义县| 和平区| 华池县| 万宁市| 奉节县| 贡嘎县| 辰溪县| 逊克县| 福海县| 台前县| 拜泉县| 平利县| 喜德县| 陈巴尔虎旗| 洪泽县| 庆城县| 乐安县| 垫江县| 湘西| 桦甸市| 社旗县| 米脂县| 行唐县| 灵丘县| 宁城县| 湖州市| 密山市| 敦化市| 绥中县| 库尔勒市| 黔南| 华坪县|