我们一般项目中,都是把字典存到数据库中的。几个月前在做一个政府的项目中,觉得其实一些字典是跟开发工程紧密结合在一起的,也就是说字典变了,工程肯定也要变,这样子的字典如果也存到数据库中的话,也是多增加一些麻烦而已,后来但将这些字典写成枚举。然后数据库里面取的所谓的字典的key就是枚举的name,如:"unsubmited",而前台页面显示的,就是枚举的一个属性text,不过这里用到了webwork里面的ognl语法。
/** */
/**
* Author: Wingel
* Date: 2006-7-29
* Time: 15:17:52
*/
public enum ApplicationState ... {
unsubmited("未提交"),submited("提交/待审批"),agreed("通过"),disagreed("未同意");
private String text;
ApplicationState(String text) ...{
this.text = text;
}
public static String getText(String name) ...{//给页面用的方法
try ...{
return valueOf(name).text;
} catch (Exception e) ...{
return null;
}
}
public String getText() ...{
return text;
}
public static boolean isValidRegisterType(String name) ...{
try ...{
valueOf(name);
return true;
} catch (Exception e) ...{
return false;
}
}
public static ApplicationState[] allState() ...{
return ApplicationState.values();
}
public String getName() ...{
return this.name();
}
}
* Author: Wingel
* Date: 2006-7-29
* Time: 15:17:52
*/
public enum ApplicationState ... {
unsubmited("未提交"),submited("提交/待审批"),agreed("通过"),disagreed("未同意");
private String text;
ApplicationState(String text) ...{
this.text = text;
}
public static String getText(String name) ...{//给页面用的方法
try ...{
return valueOf(name).text;
} catch (Exception e) ...{
return null;
}
}
public String getText() ...{
return text;
}
public static boolean isValidRegisterType(String name) ...{
try ...{
valueOf(name);
return true;
} catch (Exception e) ...{
return false;
}
}
public static ApplicationState[] allState() ...{
return ApplicationState.values();
}
public String getName() ...{
return this.name();
}
}