我使用的是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