我想使用一个selectOneMenu
值的Enum
下拉菜单。我可以很好地显示这些值,但是无法将所选的值传递回Bean。
public enum Color {
RED("Red"), BLUE("Blue"), GREEN("Green");
private String label;
private Color(String label) {
this.label = label;
}
public String getLabel() {
return label;
}
}
@ManagedBean
@ApplicationScoped
public class Data {
public Color[] getColors() {
return Color.values();
}
}
@ManagedBean(name="bean")
@SessionScoped
public class TestBean {
private Color color;
public Color getColor() {
return color;
}
public void setColor(Color color) {
this.color = color;
}
public void submit() {
System.out.println(color.getLabel());
}
}
<h:body>
<h:form>
<h:selectOneMenu value="bean.color">
<f:selectItems value="#{data.colors}" var="color" itemValue="#{color}" itemLabel="#{color.label}"/>
</h:selectOneMenu>
<h:commandButton value="Submit" action="#{bean.submit}" />
</h:form>
<h:outputText value="#{bean.color}" />
</h:body>
提交后,我在NullPointerException
函数中得到由submit()
引起的500。问题是bean.color
没有用选定的值初始化。
我确定这是基本的东西...
答案 0 :(得分:0)
bean.color
在#{bean.color}
中应更改为<h:selectOneMenu value="bean.color">
请您尝试一下吗?