selectonemenu jsf sur les objets avec convertisseur

Voici mon SelectOneMenu

<h:selectOneMenu value="#{bean.myObject}" >
    <f:ajax render="componentToRender" listener="#{bean.onSelect}"/>
    <f:converter converterId="myObjectConverter" />
    <f:selectItem itemLabel="None" itemValue="#{null}" />
    <f:selectItems value="#{bean.objects}" var="object" itemValue="#{object}" itemLabel="#{object.name}" />
</h:selectOneMenu>

Et mon convertisseur

@FacesConverter("myObjectConverter")
public class MyObjectConverter implements Converter{

    private List<MyObject> objects;

    public MyObjectConverter(){
        this.objects = MyController.getAllMyObjects();
    }

    public Object getAsObject(FacesContext context, UIComponent component, String value) {
        if(!StringUtils.isInteger(value)) {
            return null;
        }
        return this.getMyObject(value);
    }

    public String getAsString(FacesContext context, UIComponent component, Object value) {
        if(value == null) {
            return null;
        }
        return String.valueOf(((MyObject) value).getId()).toString();
    }

    public MyObject getMyObject(String id) {
        Iterator<MyObject > iterator = this.objects.iterator();
        while(iterator.hasNext()) {
            MyObject object = iterator.next();

            if(object.getId() == Integer.valueOf(id).intValue()) {
                return object;
            }
        }
        return null;
    }

}

Le problème est que mon ajax auditeur n'est jamais appelé et mon composante jamais rendu.
Est-il quelque chose de mal avec mon convertisseur ou selectOneMenu? Je suis un exemple et je ne vois pas l'erreur.

BTW : ma méthode simple pour le haricot

public void onSelect() {
    System.out.println(this.myObject);
    if(this.myObject != null) {
        System.out.println(this.myObject.getName());
    }
}

J'ai déjà eu un problème de ce genre et j'ai changé mon choix de la valeur de l'objet de l'id. Mais ici, je veux le faire fonctionner avec des objets parce que je sais que c'est possible.

Grâce

S'il vous plaît ajouter <h:message> ou <h:messages> et comprennent son ID dans <f:ajax render>. La Chance est grande que vous pourrez enfin obtenir le désiré erreur de conversion les visages message. Ou, il suffit de regarder dans les logs du serveur de file d'attente, mais non visible visages des messages. Ou peut-être il y a même un de béton exception qui devrait déjà être la réponse à sa propre, comme NullPointerException qui indique une assez triviale Java problème de logique.
Je peux ajouter que c'est entrer dans la méthode écouteur lorsque je sélectionne le "aucun" élément de la liste.
Oui, vous avez raison, j'ai une erreur de validation (la valeur est incorrecte). Que dire que c'est mon convertisseur? C'est une très convertisseur simple que je le pensais.
Cette question, alors que les doublons Erreur de Validation: la Valeur n'est pas valide

OriginalL'auteur Loric- | 2013-07-19