Struts中巧用java枚舉類產生select標籤的下拉式清單

來源:互聯網
上載者:User

    select下拉選項的value值我們通常會使用一些數字或者英文縮寫便於存入資料庫中,例如:



<option value="1">男</option>
<option value="0">女</option>

這樣在資料庫裡存為1的記錄代表是男,而0代表是女,在java類檔案裡,我們一般會定義為常量放在一個專門的類檔案中:



    public static String            SEX_MAN                                    = "1";

    public static String            SEX_WOMAN                                = "0";

但這樣我們更改這些常量只局限於java檔案中,頁面上得不到更新,所以我們可以採用java的枚舉類來解決這個問題,在定義常量的java檔案中可以寫:



 public static enum SEX ...{
      男("男","1"),
      女("女","0");
      private final String value;
      private final String label;
      private SEX(String label,String value)...{
         this.value=value;
         this.label=label;
      }
      public String getValue()
      ...{
         return value;
      }
      public String getLabel()
      ...{
         return label;
      }
   }

在actionForm中定義一個Collection:



private Collection<LabelValueBean>    sexList = new ArrayList<LabelValueBean>();

然後在action或者業務類裡寫:



for (SEX s : CommonDefine.SEX.values())
...{
    list.add(new LabelValueBean(s.getLabel(), s.getValue()));
}
   form.setSexList(list);

在頁面上寫:



 <html:select name="userForm"  property="user.sex" >
     <html:optionsCollection name="userForm" property="sexList" />
 </html:select>

這樣以後在擴充或者修改這個下拉式清單的時候,我們只需要修改枚舉類而不用動其他任何地方。這是一個最簡單的例子,遇到一些複雜繁多的下拉式清單,採用這種方法顯得十分清爽而且便於維護:)

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.