私はOmniFacesのomnifaces.SelectItemsConverter
を使用していますので、selectOneMenu
にオブジェクトの文字列値を表示できます。検証が失敗するまではすべて正常に動作します(f:validateDoubleRange
)。検証がうまくいかなくても、私が何をするかは関係ありません。私はselectOneMenu
で示したオブジェクトのequalsメソッドで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
OKですが、number
がnull
なぜthis.number
nullはありますか?
カスタムコンバータを使用しているときにこの問題は発生しないことを意味しています。これは真実ではありません。それに応じて再度質問をしてください。 – BalusC
@BalusC私は、コンバータを使用しているときにこのエラーが発生していると言っているだけで、コンバータの故障ではないと言っているわけではありません。しかし、私が何を間違っているのかわからないので、私は解決策を探しています... – AwesomeGuy