Merhabalar. Şu konuda bana destek olurmusunuz lütfen. Kullandığım yapı jsf, mvc ve jpa

Bir tablom var select menü den bir müşteri seçiyorum. ve veritabanına bu seçtiğim müşterinin müşteriNo sunu insert diyerek kaydediyorum. http://i.hizliresim.com/oQDA69.jpg

ve aynı sayfada bir formum daha var bu formdada liste şeklinde getiriyorum. Bu listenin yanına update methodu koydum.

Soldaki select menüden herhangi bir müşteri seçip kaydet dediğimde. Sağdaki listeyi çağırmak. ve bu listedeki Müşteri alanındaki her bir satırda o satıra ait müşterinin adı gelmesi lazım mesela 1. satırda müşteri osman 2. satırda kadir 3. satırda mehmet isimleri gelmesi lazım ve Bunu yapma sebebim kişi yanlış isim girip kaydetti ise oradan düzeltip update yapabilmesi için.

Solda gördüğünüz gibi bir select menü yaptım ekle diyorum gidip ekliyor. Yalnız resimde gördüğünüz üzre Sağdaki liste geldiğinde o satıra ait olan müşteri adı gelmesi lazım (örneğin o satıraki müşteri kadir ise kadir gelmesi lazım )ve oradan kadir isimli kişiyi değiştirmek için tekrar seçip update dediğimde bu müşteriyi günceleyebilmem lazım. Ben bu 2. faslı yapamadım. Ekran görüntüm olan resmi paylaştım. Ayrıca sadece şu anlattıklarımı yaptığım kod kısımınıda ekliyorum.

servis.xhtml Sayfası alt text

ServisAyrinti.java

alt text

ServisDepo.java alt text

Servis.java

alt text

Ekran Görüntüsü

alt text

soruldu: 25 Haz '14, 06:24

gezegen's gravatar image

gezegen
25141617
cevap kabul oranı: 0%

değiştirildi: 26 Haz '14, 00:33

Sahil_H's gravatar image

Sahil_H
3.2k255461

SelectedMusteriNo - ya musterinin idsini vermelisin

(25 Haz '14, 06:44) Sahil_H Sahil_H's gravatar image

Çok açıklayıcı oldu Teşekkürler

(25 Haz '14, 06:51) gezegen gezegen's gravatar image

İnan ki senin soruyu anlamakta zorlanıyorum, hatta yanlış anlıyorum gibi geldi. İstersen soruyu biraz düzenle.

update'e basıldığında bilgileri soldaki forma'mı yerleştirmek istiyorsun. Soldaki formda ekle butonuna basınca sağ tarafı mı doldurmak istiyorsun.

(25 Haz '14, 08:05) SaRPaRDa SaRPaRDa's gravatar image

Sırası ile yazayım 1-) Şimdi hocam sayafanın solunda bir form var ona bilgileri giriyorum Müşteriyi (örnek kadir)i seçiyorum

2-)Ekle butonu ile sayfa refresh oldu ekranın sağındaki liste yenilendi.

3-) Sayfanın sağındaki listenin en üst satırına yeni bir satır geldi.

Buradan sonra yapılması gereken işlemi anlatıyorum.

http://i.hizliresim.com/oQDA69.jpg (Ekran görüntüsü)

1-) Bu ekranın sağındaki listenin başında bir select menü var ya O listede benim en son eklediğim kişi (kadir) seçili gelecek.

2-) Ve ben sağdaki o kadiri değiltireceğim Ahmet yapacağım update ye basacağım.

3-) Bu yaptığım ile veritabanındaki tablonun satırındaki Kadir güncellenerek ahmet olacak

Daha önce veritabanımda musteriNo kısmında kadirin id si olan id 2 yazarken . Update işlemi ile yerine ahmetin id si olan 3 gelmiş olacak.

http://i.hizliresim.com/rLl8QM.jpg

(25 Haz '14, 08:44) gezegen gezegen's gravatar image

yeni bir cevap yazdım bakarsanız

(25 Haz '14, 08:45) gezegen gezegen's gravatar image

"servis.xhtml Sayfası" içerisindeki selectOneMenu datatable içerisinde tanımladığın var değişkenini almalı. Böylece sen o satırı güncellemiş olursun.

<p:datatable id="dt" var="servis" value.......
   <p:column>
      <p:selectOneMenu value=#{servis}
   </p:column>
</p:datatable>

update linkine tıkladığında seçili satır üzerinden işlem yaptırabilirsin. Bunun için seçilen servisi aktarabileceğin bir değişken tanımla, <f:setPropertyActionListener ile update linkinin değişkeni aktarmasını sağla.

private Servis secilenServis;

<p:column>
   <p:commandLink actionListener=#{servisAyrinti.satirGuncelle} ...
      <f:setPropertyActionListener value="#{servis}" target="#{servisAyrinti.secilenServis}" />
   </p:commandLink>
</p:column>

ServisAyrinti içerisine de satirGuncelle prosedürü içerisinde veritabanı güncellemeni yapabilirsin.

public void satirGuncelle() {
   secilenServis değişkeni buraya yeni müşteri tanımı ile gelmiştir. Database'e güncellemek üzere gönder.
}

Senin kodların üzerinden çözüm üretmeye çalıştım. Ama datatable'ın rowEdit ve cellEdit fonksiyonları var. Onlarla çözmen daha iyi olacaktır.

permanent link

cevaplandı: 25 Haz '14, 09:32

SaRPaRDa's gravatar image

SaRPaRDa
5.0k213165
cevap kabul oranı: 27%

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×1,079
×281
×86

Soruldu: 25 Haz '14, 06:24

Görüntüleme: 788 kez

Son güncelleme: 26 Haz '14, 00:33

powered by BitNami OSQA