提交对象填充的h的ID:selectOneMenu仍会导致转换错误

时间:2014-08-13 11:31:04

标签: jsf converter selectonemenu

我使用对象填充了我的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

2 个答案:

答案 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>