Forum İçeriği > Java Server Faces > jsf- h:selectBooleanCheckbox

ertugrula 27 ay önce
Aktivite Puanı: 156
iyi gunler.. jsf checkbox kullaniyorum uygulamamda yapmak istedigim, istedigi satiri secip o satiri baska bir sayfada update etmek. commadLink kullanarak rahat bir sekilde yapabiliyorum ancak checkboxlarda biraz sorun cikariyor daha dogrusu, benim list sayfamda birden fazla satirda secilebiyor, baska bir islem icin. asagidaki kodlari kullandim. @EJB private StudentRemote remote; private List studentList; private Student student = new Student(); private Map selectedIds = new HashMap(); private List selectedStudentList; private HtmlDataTable dataTable; private HtmlInputHidden studentId = new HtmlInputHidden(); public List getStudentList() { studentList = remote.getStudentList(); return studentList; } public String saveDataList() { remote.kayit(studentList); return "list"; } public String create() { remote.createStudent(student); return "created"; } public String editStudent() { student = (Student) dataTable.getRowData(); studentId.setValue(student.getId()); return "edit"; } public String updateStudent() { student.setId(Long.valueOf(studentId.getValue().toString())); remote.updateStudent(student); return "list"; } public String getSelectedStudents() { selectedStudentList = new ArrayList(); for (Student student : studentList) { if (selectedIds.get(student.getId()).booleanValue()) { selectedStudentList.add(student); selectedIds.remove(student.getId()); } } System.out.println(selectedStudentList); return "selected"; } public Map getSelectedIds() { return selectedIds; } public List getSelectedStudentList() { return selectedStudentList; } --getter setter bu sekilde kullaniyorum, burda yapmak istedgim checkbox ile sectigim satiri diger sayfada alabilmek. public String editStudent() { student = (Student) dataTable.getRowData(); studentId.setValue(student.getId()); return "edit"; } bu satirda nasill alip kullanabilirim, yada bir ornek link verebilirseniz cok sevinirim simdiden cok tesekkur ederim
Serhat Meşe 27 ay önce
Aktivite Puanı: 62
Merhaba, getSelectedStudentList yonteminizde secili olan ogrencileri donebilirsiniz. Yani yonteminiz soyle olabilir. public List getSelectedStudents(){} Daha sonra edit yonteminizde bu yontemi cagirarak secili olan Student'i bulabilirsiniz. Bu secili olan Student instanceini beaninizde tanimlayacaginiz selectedStudent'a atayabilirsiniz. private Student selectedStudent; //getter-setter public String editStudent(){ selectedStudent = getSelectedStudentList().get(0); return "edit"; } Obur sayfaya nasil aktaracagim sorusuna gelince, obur sayfaya gectiginizde halen requestte olacaginiz icin direk beaninizin selectedStudent elemanina ulasabilirsiniz. Asagidaki gibi bu elemanlara ulasabilirsiniz. "#{requestBean.selectedStudent.name}" "#{requestBean.selectedStudent.surName}" Umarim sorunuza yardimci olur. Kolay gelsin.
ertugrula 27 ay önce
Aktivite Puanı: 156
Hocam ilginize cok tesekkur ederim Ancak bi sorunum oluyor, public List getSelectedStudents(){} bu metodu cagrildigi zaman .jsp icinde baska sayfaya yonlendirme yapamiyorum, dediginiz gibi yaptim ama, bu butona tilayinca hic bir yere gitmeyecek onu nasil ayarlayabilirz. Kullandigim kodlarin bir kismini yolluyorum, incleme firsatiniz olur yardimci olursaniz cok sevinirim. public class SelectAndEdit { @EJB private StudentRemote remote; private List studentList; private Student student = new Student(); private Map selectedIds = new HashMap(); private List selectedStudentList; private HtmlDataTable dataTable; private HtmlInputHidden studentId = new HtmlInputHidden(); private Student selectedStudent; public List getStudentList() { studentList = remote.getStudentList(); return studentList; } public List getSelectedStudents() { selectedStudentList = new ArrayList(); for (Student student : studentList) { if (selectedIds.get(student.getId()).booleanValue()) { selectedStudentList.add(student); selectedIds.remove(student.getId()); } } System.out.println(selectedStudentList); return selectedStudentList; } public String editStudent() { selectedStudent = getSelectedStudentList().get(0); remote.updateStudent(selectedStudent); return "list"; } // getter-seeter bu kodlarda nasil bir duzenleme yapmam gerekiyor. public String getSelectedStudents() { selectedStudentList = new ArrayList(); for (Student student : studentList) { if (selectedIds.get(student.getId()).booleanValue()) { selectedStudentList.add(student); selectedIds.remove(student.getId()); } } return "selected"; } bu sekildeyken, butona basinca secilenler.jsp sayfasina yonlendiriyordum, secilenleri listeliyordu, simdi herhangi bi sayfaya yonlendiremeyecem, nasil yapabilrim. neleri degistirmem gerek.
Serhat Meşe 27 ay önce
Aktivite Puanı: 62
Merhaba; Senin yontemin aynen kalsin. Onu degistirme. Baska bir isimde bir onceki yazimda bahsettigim isi(secili olan ogrencilerin listesini donen bir yontem) yapan bir yontemin daha olsun. Yontemin ici de senin getSelectedStudents yonteminin aynisi olacak ama donus degerin selectedStudentList olacak. public List getSelectedStudentList() gibi... Edit yapacagin zaman bu yeni yontemi cagir..Sonra da bir onceki yazimda anlattiklarimi yapmaya calis. Bir de kopyala yapistir yaptigin kodlari "code" tagleri icine alirsan kodlar daha anlasilir olur(Metin kutusunun ustunde en sonda olan buton) kolay gelsin...
ertugrula 27 ay önce
Aktivite Puanı: 156
Tesekkur ederim hocam dediklerinizi yaptim, ancak bi sorun oldu, hatanin sebebini anlamadim. asagidaki yaptim, diger sayfaya gidiyor ama degerleri gostermiyor. asagidaki sekilde yaptim. secilen.jsp requestBean.java public List getStudentList() { studentList = remote.getStudentList(); return studentList; } public String getSelectedStudents() { selectedStudentList = new ArrayList(); for (Student student : studentList) { if (selectedIds.get(student.getId()).booleanValue()) { selectedStudentList.add(student); selectedIds.remove(student.getId()); } } return "selected"; } public String getEditForSelectedStudents() { selectedStudentList = new ArrayList(); for (Student student : studentList) { if (selectedIds.get(student.getId()).booleanValue()) { selectedStudentList.add(student); selectedIds.remove(student.getId()); } } return "edit"; } public List getSelectedStudentList() { return selectedStudentList; } public String editStudent() { selectedStudent = getSelectedStudentList().get(0); remote.updateStudent(selectedStudent); return null; } public Student getSelectedStudent() { return selectedStudent; } public void setSelectedStudent(Student selectedStudent) { this.selectedStudent = selectedStudent; } son hali bu sekilde ama Target Unreachable, 'selectedStudent' returned null bu hatayi veriyor. gozumden kacan bi kisim oluyor ama bi turlu bulamadim. Ve yaridmlariniz icin cok cok tesekkur ederimm..
ertugrula 27 ay önce
Aktivite Puanı: 156
yazdiklarimi dediginiz gibi kod bolumun icine aldim ama, yine bozuk cikti heralde kusuruma bakmayin
Serhat Meşe 27 ay önce
Aktivite Puanı: 62
Merhaba; Gordugum kadariyla selectedStudent'i hic bir yerde setlemiyorsun. getEditForSelectedStudents yonteminde bu atamayi yapabilirsin. Asagidaki gibi. public String getEditForSelectedStudents() { selectedStudentList = new ArrayList(); for (Student student : studentList) { if (selectedIds.get(student.getId()).booleanValue()) { selectedStudentList.add(student); selectedIds.remove(student.getId()); } } selectedStudent = selectedStudentList.get(0); return "edit"; } Kolay gelsin.
ertugrula 27 ay önce
Aktivite Puanı: 156
hocam cok cok tesekkur ederim yardimlariniz icin, hepsi istedigim gibi oldu, cok tesekkur ederim tekrardan zahmet verdim.
Serhat Meşe 27 ay önce
Aktivite Puanı: 62
Rica ederim. Kolay gelsin...
onur 22 ay önce
Aktivite Puanı: 20
Merhabalar, datatable üzerinden commandlink ile seçilen satırı başka bir sayfada açmaya çalışıyorum...(Table da ürünler var seçilen ürünün detayı yeni açılan pencere gösteriliyor burada bazı işlemler yapılıyor) Böyle bir örneği yapabilmem için EJB kullanmadan jsf kodları ve özellikle beanlerle yaardımcı olabilirmisiniz..teşekkürler
ertugrula 22 ay önce
Aktivite Puanı: 156
Merhaba, yukaridaki konuda istediginiz cevab verilmis aslinda, ama yinede takildiginiz yapamadiginiz kod kismini gonderseniz o sekilde yardimci olmaya calisalim.. ve asagikdaki dokumanida incelemenizi tavsiye ederim... http://balusc.blogspot.com/2006/06/using-datatables.html#SelectMultipleRows
onur 22 ay önce
Aktivite Puanı: 20
Merhabalar, datatable da seçilen satırı görüntülemek için aşağıdaki kodu kullanıyorum fakat binding yaptığımda datatable veritabanı tablosundaki son eleman ile doluyor. binding kısmını sildiğim de de datatable yine normal dolmuyor. Bunun ile ilgili yardımcı olursanız sevinirim teşekkürler. public class UrunlerTamList { private List urunTamList; private HtmlDataTable datatable; private int selectedId; Urunler urunler = new Urunler(); public UrunlerTamList() { try { Connection conn = (Connection) DBConnect.connectDb(); Statement st = (Statement) conn.createStatement(); ResultSet rs = st.executeQuery("SELECT * FROM urunler"); urunTamList = new ArrayList(); while (rs.next()) { urunler.setId(rs.getInt("idurunler")); urunler.setUrunMarka(rs.getString("marka")); urunTamList.add(urunler); } } catch (SQLException ex) { Logger.getLogger(UrunlerTamList.class.getName()).log(Level.SEVERE, null, ex); } } public String action(){ urunler = (Urunler) datatable.getRowData(); setSelectedId(urunler.getId()); return "ok"; } -----------------------
onur 22 ay önce
Aktivite Puanı: 20
Merhabalar, datatable da binding yaptığımda tablo sadece vertabanındati son kayıt ile doluyor. Bu konuda yardımcı olursanız sevinirim. Teşekkürler
Serhat Meşe 22 ay önce
Aktivite Puanı: 62
Merhaba, Kodların hepsini gonderirsen daha iyi olur diye dusunuyorum ben. Ama simdilik sunu soyleyebilirim. urun listesini constructor icinde dolduruyorsun.Bu işi constructorda yapacagina listenin getter yonteminde yapabilirsin. public List getUrunTamList(){ if(urunTamList == null){ urunTamList = new ArrayList(); // bundan sonra da yukarida yaptigin veritabani baglantisi yapip datayi cekip urunTamList'e doldurma kismi } return urunTamList } Bu sekilde daha dogru olur diye dusunuyorum. Problemin yine de devam ederse, kodlarin hepsini gonder oyle bakalim. Kolay gelsin...
Serhat Meşe 22 ay önce
Aktivite Puanı: 62
Merhaba, Kodlarina tekrar baktim da burada problem listeye eklerken olusuyor. Listeye eklerken hep ayni urunler nesnesini ekliyorsunuz. Hicbir yerde new diyerek yeni bir nesne olusturmuyorsunuz. Dolayisiyla listeye eklediginiz urunler hep ayni oluyor ve dolayisiyla son eklediginiz urun oluyor. Bu yuzden datatableda hep son kayıt gorunuyor. Bunu engellemek icin de araya Urunler urunler = new Urunler(); satirini eklemen gerekiyor. Asagidaki gibi yapabilirsin. while (rs.next()) { Urunler urunler = new Urunler(); urunler.setId(rs.getInt("idurunler")); urunler.setUrunMarka(rs.getString("marka")); urunler.setUrunModel(rs.getString("model")); urunTamList.add(urunler); } Boylece her seferinde yeni bir urun olusturup onu listene eklemis olursun.. Ikinci problemin icin de action yontemini asagidaki gibi yaz. public String action(){ urunler = (Urunler) datatable.getRowData(); return "ok"; } Burda sadece secilen urunu bul yeter (id'sini alip bir yerlere setlemene gerek yok). detay sayfasinda da direk buldugun urunun elemanlarini goster. Su sekilde direk gosterebilirsin. Umarim bu yazdiklarim yardimci olur..Kolay gelsin..
onur 22 ay önce
Aktivite Puanı: 20
Hocam çok teşekkürler her iki problem de halloldu. Uzun zamandır bu iki problem için çözüm arıyordum. vakit ayırdığınız için tekrar teşekkür ederim.

Latest Activity

yeni bir mesaj yolladı. TopLink EclipseLink
5 ay önce
mesaja yanıt verdi RE: HttpClient.
6 ay önce
mesaja yanıt verdi RE: HttpClient.
7 ay önce
yeni bir mesaj yolladı. HttpClient
7 ay önce
yeni bir mesaj yolladı. HttpClient
7 ay önce
yeni bir mesaj yolladı. Birt ile Raporlarma
10 ay önce
mesaja yanıt verdi RE: Hibernate.
10 ay önce
mesaja yanıt verdi RE: wicket kendi sayfama yonlendirme.
10 ay önce
yeni bir mesaj yolladı. wicket kendi sayfama yonlendirme
11 ay önce
yeni bir mesaj yolladı. wicket kendi sayfama yonlendirme
11 ay önce

Top Contributors

71
ertugrula
53
Abdulkadir Selcukoglu
49
Altuğ Bilgin Altıntaş
32
wicket_id_tolga
30
Taner Diler