Java f:selectItem中的枚举:如何将所选值传递给bean?
我想使用带有Java f:selectItem中的枚举:如何将所选值传递给bean?,java,jsf,Java,Jsf,我想使用带有Enum值的selectOneMenu下拉菜单。我可以很好地显示这些值,但无法将所选值传递回bean 枚举 Bean1 Bean2 xhtml 在提交时,我在submit()函数中得到一个由NullPointerException引起的500。问题是bean.color没有用所选值初始化。 我确信这是一些基本的东西,但是…bean.color应该在中更改为{bean.color} 您能试一试吗?另外,我注意到属性var和itemValue之间没有空格,谢谢,缺少空格是本文中的格式
Enum
值的selectOneMenu
下拉菜单。我可以很好地显示这些值,但无法将所选值传递回bean
枚举
Bean1
Bean2
xhtml
在提交时,我在submit()
函数中得到一个由NullPointerException
引起的500。问题是bean.color
没有用所选值初始化。
我确信这是一些基本的东西,但是…
bean.color
应该在中更改为{bean.color}
您能试一试吗?另外,我注意到属性var和itemValue之间没有空格,谢谢,缺少空格是本文中的格式错误,请更正。至于它从来没有起作用:根据这个,它应该起作用,不?啊,明白了。道歉,因为这没用。一件小事,如果它有帮助的话bean.color
需要在
OMG中更改为{bean.color}
。说到基础…哈哈@rookie_senior-我也经常遇到这种情况。小失误。很高兴这有帮助。祝你好运:)
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>