<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Sealyu

    --- 博客已遷移至: http://www.sealyu.com/blog

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      618 隨筆 :: 87 文章 :: 225 評論 :: 0 Trackbacks

    enmu基本知識

    //簡單的枚舉

    public enum Planet {
        MERCURY ,
        VENUS

    }

    //負責的枚舉

    public enum Planet {
        MERCURY (3.303e+23, 2.4397e6),
        VENUS   (4.869e+24, 6.0518e6)

    private final double mass;   // in kilograms
        private final double radius; // in meters

    //MERCURY (3.303e+23, 2.4397e6)里面的參數與構造函數對應

    Planet(double mass, double radius) {
            this.mass = mass;
            this.radius = radius;
        }

    public double getmass()   { return mass; }
        public double getradius() { return radius; }

    }

    在jsf頁面使用Enmu

    <h:selectOneMenu id="CustomerStatusList" value="#{customerAccountsAction.status}">
           <s:selectItems value="#{customerStatusList}" var="_s" label="#{_s.label}" noSelectionLabel="" />
           <s:convertEnum />
          </h:selectOneMenu>

     @Factory
     public CustomerAccountStatus[] getCustomerStatusList() {
      return CustomerAccountStatus.values();
     }

    package org.manaty.model.party.customerAccount;

    public enum CustomerAccountStatus {
        ACTIVE("Actif"),LOCKED("Verrouill"u00E9"),CLOSED("Ferm"u00E9");

     private String label;

        CustomerAccountStatus(String label) {
      this.label = label;
     }

     public String getLabel() {
      return label;
     }
    }

    目前存在的問題是label="#{_s.label}"沒法國際化,如果要在列表中國際化就應該 在getCustomerStatusList()

    方法中修改枚舉的label值,如此給CustomerAccountStatus增加setLabel方 法,getCustomerStatusList()方法中循環 CustomerAccountStatus.values(),取出枚舉值的name,然后再去資源文件中獲取對應的國際化label。、

    問題在于這樣就修改了枚舉值本身的內容,而枚舉值的含義是相當于常量,常量是不可以改變的。

    最新解決辦法

    不用label來顯示enmu,直接用enmu.name()來作為key去資源文件中取對應的國際化

    <h:selectOneMenu id="CustomerStatusList" value="#{customerAccountsAction.status}">
           <s:selectItems value="#{customerStatusList}" var="_s" label="#{messages[_s.name()]} " noSelectionLabel="" />
           <s:convertEnum />
          </h:selectOneMenu>

    為什么使用_s.name()而不使用 _s.label呢?

    因為label是特定enmu的方法,,而不是所有enmu有的方法,這樣_s.label就不通用了。

    原帖地址: http://yourenyouyu2008.javaeye.com/blog/351703
    posted on 2009-03-31 15:09 seal 閱讀(262) 評論(0)  編輯  收藏 所屬分類: Seam
    主站蜘蛛池模板: 成年私人影院免费视频网站| 国产精品亚洲片在线va| 思思99re66在线精品免费观看| 国产一区二区免费视频| 国产亚洲人成在线影院| 亚洲码欧美码一区二区三区| 亚洲成a人片77777群色| 亚洲第一精品在线视频| 国产亚洲精品美女久久久| 亚洲另类少妇17p| 免费人成年激情视频在线观看| 18禁超污无遮挡无码免费网站国产 | 亚洲香蕉网久久综合影视| 国产免费变态视频网址网站| 免费A级毛片无码免费视| 8x网站免费入口在线观看| 久久午夜夜伦鲁鲁片无码免费| 久久一区二区免费播放| 一级日本高清视频免费观看| 美女视频黄.免费网址| 国产成人亚洲精品蜜芽影院| 亚洲欧洲AV无码专区| 亚洲人成网亚洲欧洲无码| 天堂亚洲国产中文在线| 91在线亚洲综合在线| 国产亚洲国产bv网站在线| 亚洲人配人种jizz| 亚洲人成人77777在线播放| 亚洲性无码av在线| 亚洲精品午夜国产va久久| 亚洲娇小性xxxx| 亚洲欧美国产精品专区久久| 亚洲女女女同性video| 国产精品亚洲综合网站| 精品国产日韩亚洲一区在线 | 免费一级国产生活片| 免费人成网站在线播放| 亚洲成a人片在线观看久| 国产亚洲情侣一区二区无码AV| 亚洲乳大丰满中文字幕| 亚洲av丰满熟妇在线播放|