我需要<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()
?
答案 0 :(得分:0)
感谢您帮助和抱歉标记:/
我的转换器很好,问题来自
<h:selectOneMenu value="#{configBean.user.firm}" convert="firmConverter" required="true" label="#{bundle.config_form_add_firm}" >
<f:selectItems value="#{configBean.firmsLazyList}" />
我们需要使用List of Firm而不是LazyList。
希望它对其他人有所帮助。
感谢所有人。