我使用的是OmniFaces的omnifaces.SelectItemsConverter
,因此我可以在selectOneMenu
中显示对象的字符串值。一切正常,直到验证失败(f:validateDoubleRange
)。一旦验证失败,我无所谓,我在selectOneMenu
中显示的对象的等号方法中获得NullPointerException
。验证失败时的Nullpointerexception使用转换器的JSF
这是equals方法:
@Override
public boolean equals(Object obj) {
Car other = (Car) obj;
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
if (!number.equals(other.number))
return false;
return true;
}
这是我使用OmniFaces'转换器
<h:selectOneMenu id="id_1" value="#{myBean.car}" converter="omnifaces.SelectItemsConverter">
<f:selectItems value="#{myBean.cars}" />
</h:selectOneMenu>
这是导致NullPointerException
<h:inputText id="nom" value="#{myBean.num}"
style="height: 24px; "><f:validateDoubleRange minimum="0.0"/></h:inputText>
我验证在这一行中得到例外:
if (!number.equals(other.number))
other.number
是确定的,但number
是空
为什么this.number
空?
您意味着当您使用自定义转换器时不会发生此问题。这是不正确的。请相应地重新审视您的问题。 – BalusC
@BalusC我只是说我在使用该转换器时出现此错误,我并不是说它是转换器的错。但我正在寻找一个解决方案,因为我不知道我在做什么错... – AwesomeGuy