Java JSF SelectOneMenu标签

Java JSF SelectOneMenu标签,java,jsf-2,jboss7.x,selectonemenu,Java,Jsf 2,Jboss7.x,Selectonemenu,在jsf中尝试从下拉列表中选择项时出错 <h:form id="form"> <h:selectOneMenu value="#{currenccyRatesModel.mainCurrency}" converter="currencyDto" valueChangeListener="#{currencyRatesController.loadCurrencyRates}"> <f:selectItems value=

在jsf中尝试从下拉列表中选择项时出错
<h:form id="form">

    <h:selectOneMenu value="#{currenccyRatesModel.mainCurrency}" converter="currencyDto"
        valueChangeListener="#{currencyRatesController.loadCurrencyRates}">

        <f:selectItems value="#{currenccyRatesModel.bankCurrencies}"
            var="selectedCurrency" itemValue="#{selectedCurrency}"
            itemLabel="#{selectedCurrency.curLabe}" />
        <f:ajax render="currencyRatesTable" event="change" />
    </h:selectOneMenu>

    <h:dataTable id="currencyRatesTable" var="currencyRate"
        value="#{currenccyRatesModel.currencyRates}">
        <h:column>
            <h:outputText value="#{currencyRate.targetCurrency}" />
        </h:column>
        <h:column>
            <h:outputText value="#{currencyRate.ccrRate}" />
        </h:column>

    </h:dataTable>


</h:form>

web浏览器中引发的错误是无法转换currency@323536要键入的java.lang.String…CurrencyDto

这有什么问题吗,我在以前的项目中使用了相同的东西,并且工作得很好


感谢帮助

当您在
h:selectOneMenu
中使用java类作为转换器时,该类(在您的情况下为CurrencyDto)必须实现
转换器
接口,换句话说,该类必须包含以下方法:

public Object getAsObject(FacesContext context, UIComponent component, String value)
public String getAsString(FacesContext context, UIComponent component, Object value)
在您的情况下,
currenccyRatesModel.main currency
与转换器方法中预期作为参数的对象不兼容