JSF-DƏ MƏLUMAT CƏDVƏLİDƏN İSTİFADƏ EDİLMƏK. - Codeclick

paylaş

JSF-DƏ MƏLUMAT CƏDVƏLİDƏN İSTİFADƏ EDİLMƏK.

Reklamlar

Əvvəlcədən təyin edilmiş cədvəl nümunəsi.
Bu laboratoriyada DataTable komponentindən necə istifadə olunacağını göstərən sadə bir nümunə görəcəyik, bu element bizə məlumat cədvəlini səhifəmizə bu şəkildə bağlamağa imkan verir:

Bu ilk misal üçün, bizim lobya sinifimizdən yalnız əvvəlcədən doldurulmuş komponent birləşdiriləcək, daha sonra onun məlumatını dinamik şəkildə necə manipulyasiya etmək lazım olduğunu göstərəcək.

Əvvəlcə aşağıdakı struktura malik JSF layihəsi yaradaq:

Gördüyümüz kimi, 2 java sinfi yaradılıb, biri cədvəlimizdə göstərəcəyimiz insanları emal etməyə imkan verən şəxs sinfinə, digəri isə cədvəlimizi müvafiq ilə idarə etməyə imkan verən lobya sinfinə uyğundur. sütunlar və qeydlər.
Person.java sinfi bizə cədvəldə göstərəcəyimiz şəxsin əsas məlumatlarını təqdim edir, burada biz müvafiq dəsti əlavə edirik və üsulları, həmçinin insanları birbaşa doldurmaq üçün parametrləri olan konstruktoru əlavə edirik.



TablaBean.java sinfi cədvələ və oradakı insanların idarə edilməsinə aiddir, göstərilən qeydlər bu təlimatın məqsədi üçün konstruktorda doldurulmuş ArrayList şəxs tipində saxlanılır.


index.xhtml-də biz DataTable komponentini yaradırıq ki, biz insanların siyahısını birbaşa dəyərdə və müvafiq sütunlarda var="data"-da istinad edilən paxlanın atributları ilə əlaqələndiririk. cədvəlin hər sətirindəki Şəxsiyyət obyekti.



Onu işlədən zaman bizdə belə bir şey olacaq


Gördüyümüz kimi, məlumatlar cədvəl rejimində təqdim olunur, çünki biz hələ CSS üslublarını əlaqələndirməmişik, biz heç bir dizayn olmadan yalnız sətir və sütunlardakı strukturu qiymətləndiririk, lakin cədvələ "sərhəd" xüsusiyyəti əlavə edə bilərik. və buna bənzər bir marja:


Nəhayət, istifadə edə biləcəyimizi bilirik məlumatı daha strukturlaşdırılmış şəkildə təqdim etmək.


DataTable-də verilənlərin idarə edilməsi nümunəsi.
Bu bölmədə əvvəlki nümunə ilə davam edəcəyik, burada məlumatın qeydiyyatı, dəyişdirilməsi və ya silinməsi kimi ümumi prosesləri həyata keçirmək üçün cədvəl məlumatlarını necə manipulyasiya edəcəyimizi görəcəyik.


İnsanlar əlavə edin.
İnsanları qeydiyyatdan keçirmək üçün biz index.xhtml səhifəmizi dəyişdirəcəyik, bununla da şəxsi qeydiyyat formasını əlaqələndirəcəyik. Biz bunu müxtəlif məlumatların göndərildiyi “myPerson” obyekti ilə müvafiq qaydada əlaqələndirilmiş şəbəkə panelində daxiletmə və seçim komponentlərini əlaqələndirməklə edirik. sistemimizdə yeni şəxs qeydiyyata alınıb.

Gördüyümüz kimi, bu yeni elementlər DataTable-a belə bir nəticə əldə etməzdən əvvəl əlavə olunur:

İndeksi dəyişdirdikdən sonra TableBean.java sinfində lazımi dəyişiklikləri edək, çünki bu misalda biz standart əhatə səviyyəsindən istifadə etməyə davam edəcəyik, ona görə də insanların siyahısını problemsiz manipulyasiya etmək üçün statik edək, biz əlavə olaraq siyahının doldurulmasını aradan qaldırın, çünki ideya insanları qeydiyyat forması vasitəsilə qeyd edə bilməkdir.



Siyahını statik olaraq təyin edərkən gördüyümüz kimi, biz onun nümunəsini sinif səviyyəsində yaradırıq, biz bunu konstruktorda etmirik, çünki bu, jsf tərəfindən müxtəlif hallarda çağırılacaq ki, bu da siyahının yeni bir nümunəsinə səbəb olacaq. ehtiva edə biləcəyi məlumatları itirməyimiz üçün.

Bundan əlavə, biz qeydiyyat məlumatlarını idarə etmək üçün Person tipli obyekt əlavə etdik və siyahıya yeni element əlavə etməyə imkan verən və jsf düyməsindən çağırılan “aggregarPersona()” metodunu əlavə etdik, daha sonra yeni bir nümunə yaradırıq. qeydiyyat formasının təmizlənməsinə imkan verəcək “minhaPersona” obyekti.



Sistemi işlədərkən aşağıdakı davranışı görəcəyik:



Əvvəlcə forma boşdur və cədvəlimizin başlığı da göstərilir, lakin heç bir məzmunu yoxdur (yadda saxlayın ki, biz siyahının doldurulmasını aradan qaldırmışıq), belə ki, başlıq hələ qeydiyyatdan keçmiş heç bir insan olmadıqda görünməsin, ona görə də " rendered” xassəsi siyahının uzunluğunun sıfırdan böyük olduğunu təsdiqləyirik, əks halda başlıqları göstərməməlidir. (Bu əmlakın fəaliyyəti daha sonra ətraflı müzakirə olunacaq)

Biz insanları əlavə etdikcə, onlar siyahıda saxlanılır və Data Cədvəlində təqdim olunur

İnsanları istisna edin.
Siyahımızda insanları uğurla qeydiyyatdan keçirdikdən sonra biz onları oradan silə bilərik, bunun üçün data Cədvəlimizə paxlamızda yaradacağımız “eliminarPerson()” metoduna keçidi ehtiva edən yeni əməliyyatlar sütunu əlavə edəcəyik.


Bunun üçün biz “Seks” sütunundan sonra “Fəaliyyətlər” sütununu əlavə edəcəyimiz index.xhtml-ni dəyişdiririk.


Gördüyümüz kimi bir komponentdən istifadə edirik və hərəkətdə verilənlərin müəyyən bir sətirdə göstərilən siyahının obyektinə ekvivalent olduğunu xatırladaraq, parametr kimi “data” dəyərini göndərəcəyimiz metodu “eliminarPersona()” adlandırırıq.

Daha sonra TablaBean.java sinfində silmək istədiyimiz şəxs obyektini parametr kimi qəbul edən “eliminarPersona()” metodunu əlavə edirik, bu, jsf-dən göndərdiyimiz “məlumat”a uyğundur və ona ekvivalentdir. silmək istədiyimiz sətirdəki şəxs, ona görə də onu siyahıdan çıxarın.

Sistemi işlədərkən aşağıdakılara sahib olacağıq:

Və hər dəfə müvafiq keçid vasitəsilə qeydi siləndə cədvəl yenilənəcək

İnsanlara düzəliş edin.
Müvəffəqiyyətlə qeydiyyatdan keçdikdən və siyahımızdan insanları sildikdən sonra biz onları dəyişdirə bilərik, bunun üçün cədvəlimizi bəzi məlumatları yeniləmək istədikdə onu redaktə edilə bilən hala gətirəcəyik, bunun üçün yenidən “rendered” xüsusiyyətindən istifadə edəcəyik. və ya istifadəçinin qərarından asılı olaraq redaktə edilə bilən variantları gizlədin.


Sütunların hər birində gördüyümüz kimi, bir komponent əlavə olunur Bu, müşayiət olunan komponenti göstərmək və ya gizlətmək üçün doğru və ya yanlış məlumatların saxlanmasına imkan verən "göstərilən" xüsusiyyət sayəsində standart olaraq gizlənəcəkdir.

Bizim vəziyyətimizdə “data.edit” Person sinfinə əlavə etdiyimiz boolean dəyişənə (redaktə) zəng edir, əgər xüsusiyyət doğrudursa, o zaman redaktə etməyə icazə vermək üçün, lakin əgər xüsusiyyət doğrudursa, yalançıdırsa (doğru deyil), o zaman onu göstərəcək


Eyni şey müvafiq olaraq peşə, əmək haqqı və cins sütunları üçün də edilməlidir. sonuncuya a əlavə olunacaq çünki formada biz aşağıdakı yolun seçim kombinasiyasından istifadə edirik:


Eyni şəkildə, göstərilən əmlak vəziyyətə uyğun olaraq kombinasiyanı göstərməli və ya etiketi göstərməlidir.

Sonradan, "Fəaliyyətlər" sütunu dəyişdirilir, burada əvvəllər yalnız "Sil" üçün bir keçidimiz var idi, indi biz daha 2 keçid əlavə edəcəyik, biri "redaktə etmək", digəri isə redaktədən sonra məlumatları "saxlamaq" üçün.



Gördüyümüz kimi, indi redaktə etmək, saxlamaq və silmək üsulları üçün müvafiq olaraq 3 keçid var, lakin redaktə etmək və saxlamaq render edilmiş xüsusiyyətə malikdir ki, bu da eyni anda 3 keçiddən yalnız 2-ni görünən edir (yadda saxlayın ki, göstəriləndə doğru və ya yalan var. şərtdən asılı olaraq ) defolt olaraq silmə linki həmişə göstəriləcək, çünki onun göstərilən xüsusiyyəti yoxdur, redaktə və yadda saxla isə heç vaxt birlikdə görünməyəcək. (linklər arasında boşluq əlavə etməyə imkan verir)

Daxili olaraq qrafik səviyyədə verilənlər cədvəli belə görünəcək:


Qrafik olaraq bütün komponentləri birlikdə görə bilsəniz də, göstərilən xüsusiyyətin yalnız o anda doğru və ya yanlış dəyərdən asılı olaraq komponentləri göstərəcəyini çox aydın şəkildə bildirmək vacibdir.

index.xhtml dəyişdirildikdən sonra, indi yuxarıda qeyd olunan renderin istifadə etdiyi “redaktə” xassəsinin əlavə olunduğu Person.java sinfini dəyişdirməyin vaxtıdır.


Gördüyümüz kimi, yeni bir boole atributu onun müvafiq dəstinə və əldəinə bağlıdır. Həmçinin, məşqin strukturuna uyğunlaşdırmaq üçün biz xüsusiyyəti parametrli konstruktora əlavə etdik, baxmayaraq ki, o, artıq məşqin bu nöqtəsində istifadə edilmir.

Bu yolla, hər dəfə rendered=”#{data.edit}” index.xhtml-də yerinə yetirildikdə, o, bu dəyişəni çağıracaq və bu, halda asılı olaraq komponentləri göstərməyə və ya gizlətməyə imkan verəcəkdir.


Nəhayət, və artıq əvvəlki dəyişikliklərlə, "Fəaliyyətlər" sahəsindən çağırılan silmə və saxlama üçün müvafiq üsulları əlavə etməli olduğumuz Bean sinifini dəyişdirməyə davam edirik.


Gördüyümüz kimi editPersona() metodu şəxs obyektini qəbul edir (eynilə silmə metodunda edildiyi kimi jsf çağırışından) və onun “redaktə” xassəsi ona true dəyərini göndərməklə dəyişdirilir ki, bu da bu qeydi etməyə imkan verəcəkdir. gizlətmək və göstərin istədiyiniz dəyişikliyi etmək.

Digər tərəfdən, savePersona() metodu siyahıdakı bütün obyektlərin hər bir “redaktə” xassəsinin yanlış olaraq dəyişdirilməsinə cavabdeh olacaq ki, verilənlər cədvəli redaktə edilə bilən elementlərlə deyil, insanların dəyərləri ilə bərpa olunsun.


Sistemi işlədərkən aşağıdakılara sahib olacağıq:


Redaktə et düyməsini basdıqda sistem aşağıdakılara dəyişir:

Göründüyü kimi, redaktə keçidinə kliklədikdə, redaktə edilə bilən komponentlər avtomatik olaraq göstərilir, redaktə olunmayanlar isə gizlədilir, eyni şəkildə yuxarıda izah edildiyi kimi, saxlama linkinə yer açmaq üçün redaktə keçidi yox olur.

Və hazırdır!!!

Bloqumda və kanalımda bu möhtəşəm proqramlaşdırma dili haqqında material paylaşıram, bir çox məqalə və məqalə tapa bilərsiniz sıfırdan videolarMən sizə proqramlaşdırmaya başlamaq üçün lazımi alətləri necə endirəcəyinizi göstərirəm, biz əsas anlayışlar vasitəsilə getdikcə daha çox irəliləyirik obyekt yönümlü proqramlaşdırma anlayışlarıstandartlar, mövzularməlumat strukturları, digərləri arasında verilənlər bazasına giriş, tikinti istifadəçi interfeysi olan proqramlar.

Həmçinin tapa bilərsiniz Android-də mobil proqramlar yaratmağı öyrətdiyim sıfırdan kurs daim yenilənən addım-addım video ardıcıllığı vasitəsilə.


İndi də mən ardıcıllığı sıfırdan başlayacağam, burada biz java Enterprise nəşri dünyasına daxil olacağıq, inkişaf mühitini necə quracağınızı və java ilə ilk veb proqramlarınızı necə yaratacağınızı göstərəcəyəm.


Buna görə sizi codejavu.blogspot.com saytına daxil olmağa, ziyarət etməyə dəvət edirəm mənim kanalım Cristian Henao və onlar yeni seriallardan çox xəbərdardırlar

Sizi də maraqlandıra bilər.

Bu giriş haqqında əlavə etmək və ya şərh etmək istədiyiniz bir şey varmı? etməkdən çekinmeyin....və bunu bəyəndinizsə, sizi paylaşmağa dəvət edirəm Y Bu kimi daha çox yazı eşitmək üçün “Bu sayta qoşul” düyməsini klikləməklə abunə olun 😉