0

PrimeFaces、JPA、Hibernate、および JSF 2.0 を使用して Web アプリケーションに取り組んでいます。

JSF のコンバーターがありp:selectOneMenuます。私の問題は、アプリケーションを実行すると、サービスdescriptifServiceが自動配線されず、返されることNULLです!

コンバーター:

@Component
@FacesConverter(value = "descriptifConverter")
public class DescriptifConverter implements Converter {

@Autowired
@RmiClient
private IDescriptifService descriptifService;

@Override
public Object getAsObject(FacesContext arg0, UIComponent arg1, String arg2) {
    if (arg2 == null || arg2.isEmpty()) {
        return null;
    }

    String descriptif = arg2;
    Long value = Long.valueOf(descriptif);
    DescriptifDto result = new DescriptifDto();
    result = descriptifService.findById(value);
    return result;
}

@Override
public String getAsString(FacesContext arg0, UIComponent arg1, Object arg2) {

    if(arg2 == null || ((DescriptifDto) arg2).getIdDescriptif() == null) return null;

    DescriptifDto descriptif = new DescriptifDto();

    if(arg2 instanceof DescriptifDto) {
        descriptif = (DescriptifDto) arg2;
        String idDescriptif = descriptif.getIdDescriptif().toString();
        return (idDescriptif != null) ? String.valueOf(idDescriptif) : null;
    } else throw new ConverterException("Something wrong!" + arg2.hashCode() + arg2.toString());

}
}

JSF コード:

                        <p:selectOneMenu value="#{lotController.selectedDescriptif}"
                            effect="fade">
                            <f:selectItems value="#{lotController.listDescriptifs}" var="descriptif"
                                itemLabel="#{descriptif.libelle}" itemValue="#{descriptif}" />
                                <f:converter binding="#{descriptifConverter}" />
                        </p:selectOneMenu>
4

2 に答える 2