2017-02-22 3 views
0

Je reçois une erreur de validation: La valeur n'est pas une erreur valide. J'ai identifié le problème pour être la méthode d'égal à égal. L'objet sélectionné est passé correctement en argument, mais pour une raison quelconque, l'entité avec laquelle il est comparé est incorrecte.h: Erreur de validation selectOneListBox: la valeur n'est pas valide

<div class="col-sm-8"> 
      <h:selectOneListbox id="${cc.attrs.id}_test" converter="#{cc.attrs.converter}" 
           size="#{cc.attrs.selector.selectedList.size()+1}" style="height: 150px" 
           value="#{cc.attrs.selector.removeItem}" styleClass="form-control"> 
      <f:selectItems value="#{cc.attrs.selector.selectedList}" var="test" 
          itemValue="#{test}" 
          itemLabel="#{test.displayName}" /> 
      <f:ajax event="change" render="${cc.attrs.id}_jts_panel ${cc.attrs.id}_legend" /> 
      </h:selectOneListbox> 
</div> 

Voici la méthode equals:

@Override 
    public boolean equals(Object object) 
    { 
    if (!(object instanceof ObjectTest)) 
    { 
     return false; 
    } 

    ObjectTest other = (ObjectTest) object; 

    if (this.attribute1 == null || this.attribute2 == null) { 
     return false; 
    } 

    if (other.attribute1 == null || other.attribute2 == null) { 
     return false; 
    } 

    if ((this.attribute1.getName() == null && other.attribute1.getName() != null) || (this.attribute1.getName() != null && !this.attribute1.getName().equals(other.attribute1.getName()))) 
    { 
     return false; 
    } 
    if ((this.attribute2.getName() == null && other.attribute2.getName() != null) || (this.attribute2.getName() != null && !this.attribute2.getName().equals(other.attribute2.getName()))) 
    { 
     return false; 
    } 
    return true; 
    } 

Maintenant, pour une raison quelconque, this.attribute1.getName() est différent de celui other.attribute1.getName(). L'objet passé dans la méthode equals est le bon, mais l'entité elle-même est différente de l'objet passé. Comment la valeur de this.attribute est-elle ramassée puisque c'est une classe d'entité où la méthode equals est at? Est-ce que je fais quelque chose de mal?

+0

Pas grand-chose à comprendre votre problème , je suppose que votre convertisseur est la cause de votre problème: 'converter =" # {cc.attrs.converter} "' à quoi cela évalue-t-il? –

+0

Vous avez raison Jorge. Pouvez-vous ajouter votre réponse en tant que réponse ci-dessous afin que je puisse l'accepter comme la bonne s'il vous plaît? Et merci. –

+0

Fait le. Pas grand chose à expliquer vient d'ajouter le commentaire comme une réponse comme vous l'avez demandé. Content que ça t'a aidé. :) –

Répondre

1

Depuis le commentaire j'ai ajouté résolu votre problème et vous demander de l'ajouter, la voici:

Le problème a été causé par le convertisseur que vous utilisez:

converter="#{cc.attrs.converter}"