2017-02-22 10 views
0

Я получаю ошибку проверки: значение неверно. Я определил проблему как метод равенства. Выбранный объект передается правильно в качестве аргумента, но по какой-то причине сущность, с которой сравнивается, неверна.h: selectOneListBox Ошибка проверки: значение не является допустимым

<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> 

Вот метод равенства:

@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; 
    } 

Теперь по какой-то причине, this.attribute1.getName() отличается от other.attribute1.getName(). Объект, переданный в метод equals, является правильным, но сам объект отличается от переданного объекта. Как оценивается значение this.attribute, так как это класс сущности, в котором равен метод equals? Я делаю что-то неправильно?

+0

Не так много, чтобы понять вашу проблему , я предполагаю, что ваш конвертер вызывает вашу проблему: 'converter =" # {cc.attrs.converter} ", на что это оценивается? –

+0

Вы правы, Хорхе. Можете ли вы добавить свой ответ в качестве ответа ниже, чтобы я мог принять его как правильный? И благодарю вас. –

+0

Сделано. Не так много объяснять, просто добавил комментарий как ответ, как вы просили. Рад, что это вам помогло. :) –

ответ

1

Поскольку комментарий, который я добавил решить вашу проблему, и вы спрашиваете, чтобы добавить его, вот он:

Проблема была вызвана преобразователем, который вы используете:

converter="#{cc.attrs.converter}" 
Смежные вопросы