0

のコンバーターが必要です<h:selectOneMenu>。作成しましたが、オブジェクトがまだ のように表示されますcom.ddd.bo.Firm@9f36e691

<h:selectOneMenu value="#{configBean.user.firm}" convert="firmConverter" required="true" label="#{bundle.config_form_add_firm}" > 
    <f:selectItems value="#{configBean.firmsLazyList}" />                  
</h:selectOneMenu>

faces-config-general.xml、以下を配置しました。

<converter>
    <converter-for-class>com.ddd.bo.Firm</converter-for-class>
    <converter-class>com.ddd.bo.converter.FirmConverter</converter-class>
</converter>

とでFirmConverter.java

@FacesConverter(forClass=Firm.class)
public class FirmConverter implements Converter {

    @Override
    public Object getAsObject(FacesContext context, UIComponent component, String newValue) throws ConverterException {
        return null;
    }

    @Override
    public String getAsString(FacesContext context, UIComponent component, Object value) {
        Firm pFirm = (Firm) value;
        return pFirm.getName();
    }
}

の代わりに@FacesConverter(forClass=Firm.class)、 も試し@FacesConverter("firmConverter")ました。

エラーは発生しません。

Firm#getName()の代わりに表示されるようにコンバーターを動作させるにはどうすればよいFirm#toString()ですか?

4

1 に答える 1

0

助けてくれてありがとう、タグでごめんなさい:/

私のコンバーターは良好でしたが、問題の原因は

<h:selectOneMenu value="#{configBean.user.firm}" convert="firmConverter" required="true" label="#{bundle.config_form_add_firm}" > 
<f:selectItems value="#{configBean.firmsLazyList}" />                  

LazyList ではなく、会社のリストを使用する必要があります。

他の誰かに役立つことを願っています。

そして、すべてに感謝します。

于 2013-04-08T08:29:57.207 に答える