我使用对象填充了我的selectOneMenu,并尝试将id(在itemValue中)从所选项目发送回我的bean,我使用以下功能尝试了它,但我一直收到有关null转换器的错误(我和#我试图通过将id发送到我的bean来避免。)
XHTML:
<h:form>
<h:selectOneMenu value="#{bean.id}">
<f:selectItems value="#{bean.objectList}" var="f" itemValue="#{f.id}" itemLabel="#{f.name}" />
</h:selectOneMenu>
<h:commandButton action="#{bean.function}" value="OK"/>
</h:form>
豆:
private Collection<Object> objectList; //Object is an example, It is not the real class that is used
private int id;
public void function() {
// place where id is needed.
}
// id getters & setters
答案 0 :(得分:0)
您正在使用的集合:
private Collection<Object> objectList;
有一个普通对象作为其元素的类类型。
您需要将其更改为:
private Collection<MyCustomClassElement> objectList;
其中MyCustomClassElement
是select中使用的集合元素的类。
答案 1 :(得分:-2)
我认为该值未更新,请在选择后使用ajax更新值...
<h:form id="forms">
<h:selectOneMenu id="beanid" value="#{bean.id}">
<f:selectItems value="#{bean.objectList}" var="f" itemValue="#{f.id}" itemLabel="#{f.name}" />
<f:ajax event="change" render="forms" />
</h:selectOneMenu>
<h:commandButton action="#{bean.function}" value="OK"/>
</h:form>