当前位置:编程学习 > JSP >>

Struts中巧用java枚举类生成select标签的下拉列表

    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>

这样以后在扩展或者修改这个下拉列表的时候,我们只需要修改枚举类而不用动其他任何地方。这是一个最简单的例子,遇到一些复杂繁多的下拉列表,采用这种方法显得十分清爽而且便于维护:)

 

补充:Jsp教程,Java技巧及代码 
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,