<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
    主站蜘蛛池模板: 亚洲一线产区二线产区精华| 亚洲成A人片在线观看无码3D| 亚洲va久久久噜噜噜久久狠狠 | 成年女人视频网站免费m| 亚洲图片在线观看| 日本一道本不卡免费| 亚洲中文字幕无码一区| 全部一级一级毛片免费看| 国产一级高清视频免费看| 在线看亚洲十八禁网站| 免费人成视频x8x8入口| 曰批免费视频播放免费 | 久久精品国产亚洲Aⅴ香蕉| 九九综合VA免费看| 不卡精品国产_亚洲人成在线 | 国产精品亚洲精品日韩动图| 国产高清免费观看| 免费的黄网站男人的天堂| 亚洲综合色区在线观看| 波多野结衣免费一区视频| 亚洲综合久久久久久中文字幕| 国产免费一区二区三区| 久久人午夜亚洲精品无码区| 亚洲AV伊人久久青青草原| 国内精品一级毛片免费看| 亚洲第一精品电影网| 狼友av永久网站免费观看| 一区二区视频在线免费观看| 亚洲av永久无码精品古装片| 免费看污成人午夜网站| 色网站在线免费观看| 亚洲第一视频网站| 四虎成人免费网站在线| 中国黄色免费网站| 亚洲一级毛片免观看| 久久精品国产亚洲7777| 99久久这里只精品国产免费| eeuss免费天堂影院| 亚洲首页国产精品丝袜| 亚洲国产香蕉人人爽成AV片久久| 免费无码毛片一区二区APP|