下拉列表根据另一个下拉列表而变化

时间:2013-02-23 07:41:10

标签: java spring-mvc enums

我正在使用spring mvc。一个下拉列表X基于枚举。我想根据下拉列表X更改下拉列表Y.我应该为第二个下拉列表Y做什么。我应该使用枚举吗?该列表不会经常更改,因此我不打算使用数据库。我想知道好的做法。

即使我使用枚举。如何定义此变量应生成此列表。

1 个答案:

答案 0 :(得分:1)

在我的练习中,我使用过这种场景。您可以定义Y列表也是枚举。原因枚举是类您可以在枚举常量之间实现依赖行为,具体取决于它们之间的关系(我的意思是一对多,多对多,......),您可以通过提供来初始化特定的X常量Y常量通过X构造函数列出。

例如,在多对多关系中您可以使用以下策略

enum X{
    A("1", "A", Y.D, Y.E),
    B("2", "B", Y.D, Y.F),
    C("3", "C", Y.D, Y.E, Y.F);

    private String id;
    private String name;
    private List<Y> dependencies = new ArrayList<Y>();

    private X(String id, String name, Y... dependencies){
        this.id = id;
        this.name = name;

        for(Y dep : dependencies){
            this.dependencies.add(dep);
        }
    }

    public String getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public List<Y> getDependencies(){
        return Collections.unmodifiableList(dependencies);
    }
}

enum Y{
    D(),
    E(),
    F();

    private Y(){}
}