JSFDA MA'LUMOTLAR JADVALINDAN FOYDALANISH. - Codeclick

baham ko'ring

JSFDA MA'LUMOT JADVALINDAN FOYDALANISH.

Reklamalar

Oldindan belgilangan jadvalga misol.
Ushbu laboratoriyada biz DataTable komponentidan qanday foydalanishni ko'rsatadigan oddiy misolni ko'ramiz, bu element bizga ma'lumotlar jadvalini sahifamizga quyidagicha bog'lash imkonini beradi:

Ushbu birinchi misol uchun fasol sinfimizdan faqat ilgari to'ldirilgan komponent bog'lanadi, keyinroq uning ma'lumotlarini dinamik ravishda qanday boshqarish kerakligi ko'rsatiladi.

Dastlab biz quyidagi tuzilishga ega JSF loyihasini yaratamiz:

Ko'rib turganimizdek, 2 ta java klassi yaratilgan bo'lib, ulardan biri jadvalimizda ko'rsatmoqchi bo'lgan odamlarni qayta ishlashga imkon beruvchi shaxs sinfiga, ikkinchisi esa tegishli jadval bilan jadvalimizni boshqarishga imkon beruvchi fasolga mos keladi. ustunlar va yozuvlar.
Person.java klassi bizga jadvalda ko'rsatmoqchi bo'lgan shaxsning asosiy ma'lumotlarini taqdim etadi, bu erda biz mos keladigan to'plamni qo'shamiz va usullarni olamiz, shuningdek, odamlarni to'g'ridan-to'g'ri to'ldirish uchun parametrlarga ega konstruktor.



TablaBean.java klassi jadval va undagi odamlarni boshqarishga ishora qiladi, ko'rsatilgan yozuvlar ArrayList shaxs turida saqlanadi, bu qo'llanmaning maqsadlari uchun konstruktorda to'ldiriladi.


index.xhtml da biz DataTable komponentini yaratamiz, unga odamlar roʻyxatini toʻgʻridan-toʻgʻri qiymatda va tegishli ustunlarda var=”data” da havola qilingan loviya atributlari bilan bogʻlaymiz, maʼlumotlar esa maʼlumotlarni ifodalovchi element hisoblanadi. Jadvalning har bir satridagi Person ob'ektining.



Uni ishga tushirganda, bizda shunga o'xshash narsa bo'ladi


Ko'rib turganimizdek, ma'lumotlar jadval rejimida taqdim etiladi, chunki biz hali CSS uslublarini bog'lamaganmiz, biz faqat satrlar va ustunlardagi strukturani hech qanday dizaynsiz qadrlaymiz, ammo jadvalga "chegara" xususiyatini qo'shishimiz mumkin va shunga o'xshash narsaga ega bo'lgan chegara:


Biz nihoyat foydalanishimiz mumkinligini bilamiz ma'lumotni yanada tuzilgan tarzda taqdim etish.


DataTableda ma'lumotlarni boshqarishga misol.
Ushbu bo'limda biz oldingi misolni davom ettiramiz, unda biz ma'lumotlarni ro'yxatga olish, o'zgartirish yoki o'chirish kabi umumiy jarayonlarni amalga oshirish uchun jadval ma'lumotlarini qanday manipulyatsiya qilishni ko'rib chiqamiz.


Odamlarni qo'shing.
Odamlarni ro'yxatdan o'tkazish uchun biz index.xhtml sahifamizni o'zgartiramiz, unga odamlarni ro'yxatdan o'tkazish formasini bog'laymiz. Biz buni kiritish va tanlash komponentlarini turli ma'lumotlar yuboriladigan "myPerson" ob'ekti bilan tegishli ravishda bog'langan grid panelidagi bog'lash orqali amalga oshiramiz. atributlarni ro'yxatdan o'tkazing, so'ngra "addPerson()" usulini chaqiradigan tugma bog'lanadi. bizning tizimimizda yangi shaxs ro'yxatga olingan.

Ko'rib turganimizdek, ushbu yangi elementlar ma'lumotlar jadvalidan oldin qo'shiladi:

Indeksni o'zgartirgandan so'ng, biz TableBean.java sinfiga kerakli o'zgarishlarni kiritamiz, chunki bu misolda biz standart qamrov darajasidan foydalanishni davom ettiramiz, shuning uchun biz odamlar ro'yxatini hech qanday muammosiz manipulyatsiya qilish uchun statik qilamiz, qo'shimcha ravishda biz ro'yxatni to'ldirishni olib tashlaymiz, chunki g'oya ro'yxatga olish shakli orqali odamlarni ro'yxatdan o'tkazishdir.



Ko'rib turganimizdek, ro'yxatni statik deb belgilashda biz uning namunasini sinf darajasida yaratamiz, biz buni konstruktorda qilmaymiz, chunki bu bizning jsf tomonidan turli hollarda chaqiriladi, bu ro'yxatning yangi nusxasini keltirib chiqaradi. bizni o'z ichiga olishi mumkin bo'lgan ma'lumotlarni yo'qotishimizga olib keladi.

Bundan tashqari, biz ro'yxatga olish ma'lumotlarini boshqarish imkoniyatiga ega bo'lish uchun Person tipidagi ob'ektni qo'shdik va ro'yxatga yangi element qo'shish imkonini beruvchi va jsf tugmasidan chaqiriladigan "aggregarPersona()" usulini qo'shdik, keyinroq biz yangi nusxasini yaratamiz. "minhaPessoa" ob'ekti. bu ro'yxatga olish shaklini tozalash imkonini beradi.



Tizimni ishga tushirishda biz quyidagi xatti-harakatlarni ko'ramiz:



Dastlab forma bo'sh va jadvalimizning sarlavhasi ham ko'rsatiladi, lekin hech qanday mazmunsiz (esda tutingki, biz ro'yxatni to'ldirishni bekor qildik), shuning uchun u hali ro'yxatdan o'tgan odamlar yo'q bo'lsa, sarlavhani ko'rsatmaydi, shuning uchun biz foydalanamiz "rendered" xususiyati, bu erda biz ro'yxat hajmi noldan katta ekanligini tasdiqlaymiz, aks holda u sarlavhalarni ko'rsatmasligi kerak. (Ushbu mulkning ishlashi keyinroq batafsil muhokama qilinadi)

Biz odamlarni qo'shganimizda, ular ro'yxatda saqlanadi va DataTableda taqdim etiladi

Odamlarni o'chirish.
Ro'yxatimizda odamlarni muvaffaqiyatli ro'yxatdan o'tkazganimizdan so'ng, biz ularni undan olib tashlashimiz mumkin, buning uchun ma'lumotlar jadvalimizga yangi harakatlar ustunini qo'shamiz, unda biz o'zimiz yaratadigan "eliminatePerson()" usuliga havola mavjud.


Buning uchun biz index.xhtml ni o'zgartiramiz, bu erda "Jinsiy aloqa" ustunidan keyin "Amallar" ustunini qo'shamiz.


Ko'rib turganimizdek, biz komponentdan foydalanamiz va amalda biz “eliminarPersona()” usulini chaqiramiz, unga parametr sifatida “maʼlumotlar” qiymatini yuboramiz, maʼlumotlar maʼlum bir satrda koʻrsatilayotgan roʻyxat obʼyektiga ekvivalent ekanligini yodda tutamiz.

Keyinchalik, TablaBean.java sinfida biz o'chirmoqchi bo'lgan shaxs ob'ektini parametr sifatida qabul qiluvchi "eliminarPersona()" usulini qo'shdik, bu jsf dan jo'natgan "ma'lumotlar" ga mos keladi va foydalanuvchiga ekvivalent bo'ladi. biz o'chirmoqchi bo'lgan qatorni, keyin uni ro'yxatdan olib tashlash uchun.

Tizimni ishga tushirganda bizda quyidagilar bo'ladi:

Va har safar biz tegishli havola orqali yozuvni o'chirsak, jadval yangilanadi

Odamlarni tahrirlash.
Muvaffaqiyatli ro'yxatdan o'tgan va ro'yxatimizdan odamlarni o'chirib tashlaganimizdan so'ng, biz ularni o'zgartirishimiz mumkin, buning uchun biz jadvalimizni ba'zi ma'lumotlarni yangilamoqchi bo'lganimizda uni tahrirlanadigan qilib o'zgartiramiz, buning uchun biz yana "rendered" xususiyatidan foydalanamiz. yoki foydalanuvchi qaroriga qarab tahrirlanadigan variantlarni yashiring.


Ustunlarning har birida ko'rib turganimizdek, komponent qo'shiladi Bu sizga ilova qilingan komponentni ko'rsatish yoki yashirish uchun haqiqiy yoki noto'g'ri ma'lumotlarni saqlash imkonini beruvchi "ko'rsatilgan" xususiyat tufayli sukut bo'yicha yashirin bo'ladi.

Bizning holatda, "data.edit" biz Person sinfiga qo'shgan mantiqiy o'zgaruvchiga (tahrirlash) qo'ng'iroq qiladi, agar xususiyat rost bo'lsa, u ko'rsatadi tahrirlashga ruxsat berish uchun, lekin agar xususiyat rost false (to'g'ri emas) bo'lsa, u ko'rsatadi


Kasb, ish haqi va jins ustunlari uchun ham xuddi shunday qilish kerak, bunda qo'shish o'rniga ikkinchisiga, a chunki shaklda biz quyidagi yo'lning tanlov kombinatsiyasidan foydalanamiz:


Xuddi shunday, ko'rsatilgan xususiyat holatga qarab kombinatsiyani ko'rsatishi yoki yorliqni ko'rsatishi kerak.

Keyinchalik, "Amallar" ustuni o'zgartiriladi, bu erda ilgari bizda faqat "O'chirish" ga havola bo'lgan, endi biz yana 2 ta havolani qo'shamiz, ulardan biri "tahrirlash" uchun, ikkinchisi esa ma'lumotlarni tahrir qilgandan keyin "saqlash" uchun.



Ko'rib turganimizdek, endi tahrirlash, saqlash va o'chirish usullari uchun 3 ta havola mavjud, biroq tahrirlash va saqlash bir vaqtning o'zida 3 ta havoladan faqat 2 tasini ko'rinadigan qilib ko'rsatadigan xususiyatga ega (esda tutingki, ko'rsatilgan havolalar rost yoki noto'g'ri bo'lishi mumkin. sharti bo'yicha ) shuning uchun sukut bo'yicha o'chirish havolasi har doim paydo bo'ladi, chunki u ko'rsatilgan xususiyatga ega emas, tahrirlash va saqlash esa hech qachon birga ko'rinmaydi. (havolalar orasiga bo'sh joy qo'shish imkonini beradi)

Ichki, grafik darajada, ma'lumotlar jadvali quyidagicha ko'rinadi:


Grafik jihatdan siz barcha komponentlarni birgalikda ko'rishingiz mumkin bo'lsa-da, aniq bo'lishi kerakki, ko'rsatilgan xususiyat faqat o'sha paytdagi haqiqiy yoki noto'g'ri qiymatga qarab komponentlarni ko'rsatadi.

index.xhtml-ni o'zgartirgandan so'ng, endi yuqorida aytib o'tilgan renderer tomonidan ishlatiladigan "tahrirlash" xususiyati qo'shiladigan Person.java sinfini o'zgartirish vaqti keldi.


Ko'rib turganimizdek, yangi mantiqiy atribut o'zining tegishli to'plami va olish bilan bog'langan. Bundan tashqari, mashq strukturasini sozlash uchun biz parametrlangan konstruktorga xususiyatni qo'shdik, garchi u endi mashqning bu nuqtasida ishlatilmasa ham.

Shunday qilib, har safar rendered=”#{data.edit}” index.xhtml da bajarilganda, u ushbu o'zgaruvchini chaqiradi, bu esa holatga qarab komponentlarni ko'rsatish yoki yashirish imkonini beradi.


Va nihoyat, oldingi o'zgarishlar bilan biz Bean sinfini o'zgartirishni boshladik, bu erda "Amallar" maydonidan chaqirilganlarni o'chirish va saqlashda mos keladigan usullarni qo'shishimiz kerak.


Ko'rib turganimizdek editPersona() usuli shaxs ob'ektini qabul qiladi (o'chirish usulida bo'lgani kabi jsf chaqiruvidan) va uning "tahrirlash" xususiyati unga true qiymatini yuborish orqali o'zgartiriladi, bu esa ushbu yozuvni yashirishga imkon beradi. the va ko'rsating va kerakli modifikatsiyani amalga oshirish uchun.

Boshqa tomondan, savePersona() usuli ro'yxatdagi barcha ob'ektlarning har bir "tahrirlash" xususiyatini yolg'onga o'zgartirish uchun javobgar bo'ladi, shunda ma'lumotlar jadvali tahrirlanadigan elementlar bilan emas, balki odamlarning qiymatlari bilan tiklanadi.


Tizimni ishga tushirganda bizda quyidagilar bo'ladi:


Tahrirlash tugmasini bosganingizda tizim quyidagicha o'zgaradi:

Ko'rinib turibdiki, tahrirlash havolasi bosilganda, tahrirlash mumkin bo'lgan komponentlar avtomatik ravishda ko'rsatiladi, tahrir qilib bo'lmaydiganlari esa yashirin bo'ladi, xuddi shunday yuqorida aytib o'tilganidek, saqlash havolasini ochish uchun tahrirlash havolasi yo'qoladi.

Va tayyor!!!

Mening blogimda va kanalimda men ushbu ajoyib dasturlash tili haqida materiallarni baham ko'raman, siz ko'plab maqolalarni topishingiz mumkin noldan videolarMen sizga dasturlashni boshlash uchun kerakli vositalarni qanday yuklab olishni ko'rsataman, biz asosiy tushunchalar orqali ko'proq va ko'proq o'tayapmiz. ob'ektga yo'naltirilgan dasturlash tushunchalaristandartlar, mavzularma'lumotlar tuzilmalari, ma'lumotlar bazalariga kirish va boshqalar foydalanuvchi interfeysiga ega ilovalar.

Shuningdek, siz topishingiz mumkin Kursni noldan boshlab men Androidda mobil ilovalar yaratishni o'rgataman doimiy yangilanib turadigan bosqichma-bosqich video ketma-ketligi orqali.


Va endi men ketma-ketlikni noldan boshlayman, u erda biz java Enterprise nashri dunyosiga kiramiz, ishlab chiqish muhitini qanday sozlashni va java yordamida birinchi veb-ilovalaringizni qanday yaratishni ko'rsataman.


Shuning uchun men sizni codejavu.blogspot.com saytiga tashrif buyurishga taklif qilaman mening kanalim Cristian Henao va ular yangi seriallardan juda xabardor ekanliklari

Bu sizni ham qiziqtirishi mumkin.

Ushbu yozuvga qo'shmoqchi yoki fikr bildirmoqchi bo'lgan biror narsa bormi? bemalol qiling....va agar sizga yoqqan bo'lsa, sizni baham ko'rishga taklif qilaman Y Shunga o'xshash ko'proq xabarlarni eshitish uchun "Ushbu saytga qo'shiling" tugmasini bosib obuna bo'ling 😉