gpt4 book ai didi

java - JSF2 枚举 h :selectOneMenu

转载 作者:搜寻专家 更新时间:2023-11-01 03:13:00 24 4
gpt4 key购买 nike

我正在尝试在 JSF2 项目中使用带有 h:selectOneMenu 框的枚举。

到目前为止我得到了什么:

枚举:

public enum MyType {
TEST,
ME;
}

支持 bean:

@ManagedBean
public class MyBean {
private MyType type;
public MyType[] getTypes {
return MyType.values;
}
public void setType(MyType type) {
this.type = type;
}
public MyType getType() {
return this.type;
}
}

xhtml 页面:

<h:selectOneMenu id="mySelection" 
value="#{myBean.type}">
<f:selectItems value="#{myBean.types}" />
</h:selectOneMenu>

我的问题是值显示正确但没有保存(我实际上是在 seam3 hibernate 项目中使用它)。当我尝试使用自定义 validator 时,我看到 setType 方法被调用了两次,第二次是 null -> 导致没有任何内容被保存。我错过了什么吗?

到目前为止,我已经检查了以下主题:
* jsf-2-0-use-enum-values-for-selectonemenu
* jsf-2-0-use-enum-in-selectmany-menu
* jsf-best-way-to-enum-internationalization-i18n

非常感谢您的帮助,
斯蒂芬

最佳答案

在这种特殊情况下,您根本不需要自定义转换器。 JSF 有一个内置的枚举转换器。仅当您拥有 List<SomeEnum> 时,枚举的自定义转换器才是必需的而不是 SomeEnum作为值(value)。另见 Use enum in h:selectManyCheckbox .

除了两个方法中缺少括号导致的两个编译错误外,到目前为止发布的代码看起来不错,应该可以正常工作。您的问题可能是由您为简单起见从问题中省略的其他原因引起的。

关于java - JSF2 枚举 h :selectOneMenu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5536628/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com