首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从模型工作DropDownChoice和SelectOption获取值类型枚举

从模型工作DropDownChoice和SelectOption获取值类型枚举
EN

Stack Overflow用户
提问于 2019-06-27 23:32:08
回答 1查看 62关注 0票数 0

我无法获取链接到SelectOption[]类的DropDownChoice的枚举类型值,我看到该对象具有期望值,但我不知道如何在我的模型中获取它。

最初,DropDownChoice使用模型中定义的值,它工作得很好,但我需要显示每个值的详细信息,这让我陷入了困境

代码语言:javascript
复制
@Entity
public class Asegurado extends EntityBase {
@Enumerated(EnumType.STRING)
private Genero genero = Genero.M;

public static enum Genero {
    M, F, D
}

public Genero getGenero() {
    return genero;
}

public void setGenero(Genero genero) {
    this.genero = genero;
}

}

selectOption为:

代码语言:javascript
复制
public class SelectOption implements Serializable{
private static final long serialVersionUID = 1L;
private Enum<?> name;
private String value;

public SelectOption(Enum<?> name, String value) {
    this.name = name;
    this.value = value;
}   

public Enum<?> getName() {
    return name;
}

public void setName(Enum<?> name) {
    this.name = name;
}

public String getValue() {
    return value;
}

public void setValue(String value) {
    this.value = value;
}

public static long getSerialversionuid() {
    return serialVersionUID;
}

}

在应用程序Bean中:

代码语言:javascript
复制
SelectOption[] options = new SelectOption[] {
    new SelectOption(Genero.M, "Masculino"), 
    new SelectOption(Genero.F, "Femenino"),
    new SelectOption(Genero.D, "Diferenciado")
    };
Asegurado wase = new Asegurado();
ChoiceRenderer<Enum> choiceRenderer = new ChoiceRenderer<Enum>("value", "name");
    final DropDownChoice<Asegurado.Genero> generoWk = new DropDownChoice(
            "genero",
            new Model<Asegurado.Genero>(Asegurado.Genero.D),
            Arrays.asList(options),
            choiceRenderer
            );

在onSubmit()中,问题出在:

代码语言:javascript
复制
asegurado.setGenero(generoWk.getModelObject()); 

错误:"Cannot be cast“

请帮帮忙。

EN

回答 1

Stack Overflow用户

发布于 2019-06-28 01:24:07

当我运行调试时,我意识到DropDownChoice加载正确:

代码语言:javascript
复制
generoWK=DropDownChoice<T>
data=Model<T>
Object=Asegurado$Genero
name="D"

当我执行onSubmit()时,它会发生变化:

代码语言:javascript
复制
val$generoWK=DropDownChoice<T>
data=Model<T>
Object=SelectOptions
name=Asegurado$Genero
name="D"

有些东西会导致变量被修改,我不知道是什么原因,但我希望将name = "D“值作为枚举类型获取

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56794422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档