jsf te “Validation Error: Value is not valid” hatası

Örnek kod parçacığı:

<p:selectOneMenu value="#{kullaniciBean.kullanici.birim}" converter="birimConverter">
	<f:selectItems value="#{kullaniciBean.birimListesi}" var="bL" itemLabel="#{bL.birimAdi}" itemValue="#{bL}" />
</p:selectOneMenu>

<p:commandButton action="#{kullaniciBean.kaydet}" value="Kaydet" update="@form :kullaniciListesi" />

“Kaydet” butonuna basınca “Validation Error: Value is not valid” hatası verebilir.

Bu hatanın nedeni, jsf sayfadan gönderdiğiniz değerin birebir aynısını listede arar. Bulamaz ise hata verir.

Çözümü:

Birim entity sınıfında equals metodunu şu şekilde override etmeliyiz.

@Override
public boolean equals(Object obj) {
	if (obj == null)
		return false;
	if (obj instanceof Birim) {
		Birim other = (Birim) obj;
		if (other.getBirimId() == this.birimId
			&& other.getBirimAdi().equals(this.birimAdi)
			&& other.getBirimKodu().equals(this.birimKodu))
			return true;
	}
	return false;
}
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s