select下拉选项的value值我们通常会使用一些数字或者英文缩写便于存入数据库中,例如:
男
女
这样在数据库里存为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 sexList = new ArrayList();
然后在action或者业务类里写:
for (SEX s : CommonDefine.SEX.values())
...{
list.add(new LabelValueBean(s.getLabel(), s.getValue()));
}
form.setSexList(list);
在页面上写:
这样以后在扩展或者修改这个下拉列表的时候,我们只需要修改枚举类而不用动其他任何地方。这是一个最简单的例子,遇到一些复杂繁多的下拉列表,采用这种方法显得十分清爽而且便于维护:)