جے ایس ایف میں ڈیٹا ٹیبل کا استعمال۔ - کوڈ کلک

بانٹیں

JSF میں ڈیٹا ٹیبل کا استعمال۔

اشتہارات

مثال پہلے سے طے شدہ جدول۔
اس لیب میں ہم ایک سادہ سی مثال دیکھیں گے جس میں دکھایا گیا ہے کہ ڈیٹا ٹیبل جزو کو کیسے استعمال کیا جائے، یہ عنصر ہمیں ڈیٹا ٹیبل کو اپنے صفحہ سے اس طرح لنک کرنے کی اجازت دیتا ہے:

اس پہلی مثال کے لیے، ہماری بین کلاس سے صرف پہلے سے آباد جزو کو جوڑا جائے گا، بعد میں یہ دکھایا جائے گا کہ اس کی معلومات کو متحرک طریقے سے کیسے جوڑنا ہے۔

ابتدائی طور پر ہم مندرجہ ذیل ڈھانچے کے ساتھ JSF پروجیکٹ بنائیں گے۔

جیسا کہ ہم دیکھ سکتے ہیں، 2 جاوا کلاسز بنائے گئے ہیں، ایک پرسن کلاس سے مساوی ہے جو ہمیں ان لوگوں پر کارروائی کرنے کی اجازت دیتا ہے جو ہم اپنے ٹیبل میں دکھانے جا رہے ہیں اور دوسری بین سے جو ہمیں متعلقہ کے ساتھ اپنی میز کا انتظام کرنے کی اجازت دے گی۔ کالم اور ریکارڈ.
Person.java کلاس ہمیں اس شخص کا بنیادی ڈیٹا فراہم کرتی ہے جسے ہم ٹیبل میں دکھانے جا رہے ہیں، یہاں ہم متعلقہ سیٹ اور حاصل کرنے کے طریقے شامل کرتے ہیں، ساتھ ہی ساتھ ایک کنسٹرکٹر بھی ہے جس میں پیرامیٹرز ہیں جو براہ راست لوگوں کو بھر سکتے ہیں۔



TablaBean.java کلاس سے مراد ٹیبل اور اس میں لوگوں کا انتظام ہے، جو ریکارڈز دکھائے جاتے ہیں وہ ArrayList person type میں محفوظ ہوتے ہیں جو اس گائیڈ کے مقاصد کے لیے کنسٹرکٹر میں بھرے جاتے ہیں۔


index.xhtml میں ہم ڈیٹا ٹیبل کا جزو بناتے ہیں جس کے ساتھ ہم لوگوں کی فہرست کو براہ راست ویلیو میں اور متعلقہ کالموں میں بین کی صفات سے جوڑتے ہیں جن کا حوالہ var=”data” میں دیا گیا ہے، جس میں ڈیٹا وہ عنصر ہوتا ہے جو ڈیٹا کی نمائندگی کرتا ہے۔ ٹیبل کی ہر سطر میں پرسن آبجیکٹ کا۔



اسے چلانے پر ہمارے پاس کچھ اس طرح ہوگا۔


جیسا کہ ہم دیکھ سکتے ہیں، معلومات کو ٹیبل موڈ میں پیش کیا گیا ہے، جیسا کہ ہم نے ابھی تک سی ایس ایس اسٹائلز کو لنک نہیں کیا ہے، ہم کسی بھی قسم کے ڈیزائن کے بغیر صرف قطاروں اور کالموں میں ڈھانچے کی تعریف کرتے ہیں، تاہم ہم ٹیبل میں "بارڈر" پراپرٹی شامل کر سکتے ہیں اور ایک مارجن جس میں کچھ اس طرح ہے:


ہم آخر کار جانتے ہیں کہ ہم استعمال کر سکتے ہیں۔ معلومات کو زیادہ منظم انداز میں پیش کرنے کے لیے۔


ڈیٹا ٹیبل میں ڈیٹا مینجمنٹ کی مثال۔
اس سیکشن میں ہم پچھلی مثال کے ساتھ جاری رکھیں گے جہاں ہم دیکھیں گے کہ معلومات کو رجسٹر کرنے، تبدیل کرنے یا حذف کرنے جیسے عام عمل کو انجام دینے کے لیے ٹیبل کے ڈیٹا کو کس طرح جوڑنا ہے۔


لوگوں کو شامل کریں۔
لوگوں کو رجسٹر کرنے کے لیے، ہم اپنے index.xhtml صفحہ میں ترمیم کریں گے جس سے ہم لوگوں کے رجسٹریشن فارم کو لنک کریں گے۔ ہم یہ کام ایک گرڈ پینل میں ان پٹ اور سلیکشن کے اجزاء کو جوڑ کر کرتے ہیں جو کہ "myPerson" آبجیکٹ کے ساتھ مناسب طریقے سے منسلک ہوتا ہے جس پر مختلف ڈیٹا بھیجا جاتا ہے۔ صفات کو رجسٹر کریں، پھر ایک بٹن منسلک ہوتا ہے جو ایک "addPerson()" طریقہ کو کال کرتا ہے جو اجازت دیتا ہے۔ ہمارے سسٹم میں ایک نیا شخص رجسٹرڈ ہے۔

جیسا کہ ہم دیکھتے ہیں کہ یہ نئے عناصر ڈیٹا ٹیبل سے پہلے اس طرح کا نتیجہ حاصل کرتے ہیں:

انڈیکس میں ترمیم کرنے کے بعد، ہم TableBean.java کلاس میں ضروری تبدیلیاں کریں گے، جیسا کہ اس مثال میں ہم پہلے سے طے شدہ اسکوپ لیول کا استعمال جاری رکھیں گے، اس لیے ہم لوگوں کی فہرست کو جامد بنائیں گے تاکہ اسے بغیر کسی دشواری کے جوڑ دیا جا سکے۔ اس کے علاوہ ہم فہرست کی پیڈنگ کو ختم کر دیں گے کیونکہ خیال یہ ہے کہ لوگوں کو رجسٹریشن فارم کے ذریعے رجسٹر کیا جا سکے۔



جیسا کہ ہم دیکھ سکتے ہیں، فہرست کو جامد کے طور پر متعین کرتے وقت ہم کلاس کی سطح پر اس کی مثال بناتے ہیں، ہم اسے کنسٹرکٹر میں نہیں کرتے ہیں کیونکہ اس کو ہمارے jsf کے ذریعہ مختلف مواقع پر بلایا جائے گا جس کی وجہ سے فہرست کی ایک نئی مثال آئے گی۔ ہمیں اس معلومات سے محروم کرنے کا سبب بنتا ہے جو اس میں ہوسکتی ہے۔

مزید برآں، ہم نے رجسٹریشن ڈیٹا کو منظم کرنے کے قابل ہونے کے لیے پرسن قسم کی ایک چیز شامل کی اور "aggregarPersona()" طریقہ شامل کیا جو فہرست میں ایک نیا عنصر شامل کرنے کی اجازت دیتا ہے اور اسے jsf بٹن سے بلایا جاتا ہے، بعد میں ہم ایک نئی مثال تیار کرتے ہیں۔ "minhaPessoa" آبجیکٹ۔ جو رجسٹریشن فارم کی صفائی کی اجازت دے گا۔



سسٹم کو چلاتے وقت ہم درج ذیل رویہ دیکھیں گے:



ابتدائی طور پر فارم خالی ہے اور ہمارے ٹیبل کا ہیڈر بھی ظاہر ہوتا ہے لیکن بغیر کسی مواد کے (یاد رہے کہ ہم نے فہرست کو بھرنا ختم کر دیا ہے)، اس لیے یہ ہیڈر نہیں دکھاتا جب کہ ابھی تک کوئی رجسٹرڈ نہیں ہے، اس لیے ہم استعمال کرتے ہیں۔ "پیش کردہ" پراپرٹی جہاں ہم تصدیق کرتے ہیں کہ فہرست کا سائز صفر سے زیادہ ہے، بصورت دیگر اسے ہیڈرز نہیں دکھانا چاہیے۔ (اس پراپرٹی کے آپریشن پر بعد میں تفصیل سے بات کی جائے گی)

جیسا کہ ہم لوگوں کو شامل کرتے ہیں، وہ فہرست میں محفوظ ہوتے ہیں اور ڈیٹا ٹیبل میں پیش کیے جاتے ہیں۔

لوگوں کو حذف کریں۔
اپنی فہرست میں کامیابی کے ساتھ لوگوں کو رجسٹر کرنے کے بعد، ہم انہیں اس سے ہٹا سکتے ہیں، ایسا کرنے کے لیے ہم اپنے ڈیٹا ٹیبل میں ایک نیا ایکشن کالم شامل کریں گے جس میں "eleminatePerson()" طریقہ کار کا لنک ہوگا جسے ہم اپنی بین میں بنائیں گے۔


ایسا کرنے کے لیے، ہم index.xhtml میں ترمیم کریں گے جہاں "Sex" کالم کے بعد ہم "Actions" کالم شامل کریں گے۔


جیسا کہ ہم دیکھ سکتے ہیں، ہم ایک جزو استعمال کرتے ہیں۔ اور ایکشن میں ہم "eliminarPersona()" طریقہ کو کہتے ہیں جس میں ہم قدر "ڈیٹا" کو بطور پیرامیٹر بھیجیں گے، یہ یاد رکھتے ہوئے کہ ڈیٹا اس فہرست آبجیکٹ کے برابر ہے جو ایک مخصوص لائن پر ظاہر ہو رہا ہے۔

بعد میں، TablaBean.java کلاس میں، ہم نے "eliminarPersona()" طریقہ شامل کیا جو ایک پیرامیٹر کے طور پر وصول کرتا ہے جس شخص کو ہم حذف کرنا چاہتے ہیں، یہ "ڈیٹا" کے مساوی ہے جو ہم jsf سے بھیجتے ہیں، اور اس میں اس شخص کے برابر ہے۔ جس لائن کو ہم حذف کرنا چاہتے ہیں، اسے فہرست سے ہٹانے کے لیے۔

سسٹم کو چلاتے وقت ہمارے پاس درج ذیل ہوں گے:

اور جب بھی ہم متعلقہ لنک کے ذریعے کوئی ریکارڈ حذف کریں گے، جدول کو اپ ڈیٹ کیا جائے گا۔

لوگوں میں ترمیم کریں۔
اپنی فہرست سے کامیابی کے ساتھ رجسٹر ہونے اور لوگوں کو حذف کرنے کے بعد، ہم ان میں ترمیم کر سکتے ہیں، اس کے لیے ہم اپنے ٹیبل میں ترمیم کر کے اسے قابل تدوین کریں گے جب ہم کچھ ڈیٹا کو اپ ڈیٹ کرنا چاہیں گے، اس کے لیے ہم دوبارہ "rendered" پراپرٹی استعمال کریں گے جو ظاہر ہو گی۔ یا آپشنز کو چھپائیں قابل تدوین اس پر منحصر ہے کہ صارف کیا فیصلہ کرتا ہے۔


جیسا کہ ہم ہر کالم میں دیکھ سکتے ہیں، ایک جزو شامل کیا گیا ہے۔ جو پہلے سے طے شدہ طور پر "پیش کردہ" خاصیت کی بدولت چھپ جائے گی جو آپ کو ساتھ والے جز کو دکھانے یا چھپانے کے لیے صحیح یا غلط ڈیٹا کو ذخیرہ کرنے کی اجازت دیتی ہے۔

ہمارے معاملے میں "data.edit" ایک بولین متغیر (ترمیم) کو کال کرتا ہے جسے ہم نے پرسن کلاس میں شامل کیا ہے، اگر پراپرٹی صحیح ہے تو یہ دکھائے گا ترمیم کی اجازت دینے کے لیے، لیکن اگر پراپرٹی سچی غلط ہے (سچ نہیں) تو یہ ظاہر کرے گا۔


بالترتیب پیشے، تنخواہ اور صنفی کالم کے لیے بھی ایسا ہی کیا جانا چاہیے، جہاں ایک کا اضافہ کرنے کے بجائے مؤخر الذکر، a چونکہ فارم میں ہم درج ذیل راستے کا سلیکشن کومبو استعمال کرتے ہیں:


اسی طرح، پیش کردہ پراپرٹی کیس کے لحاظ سے کومبو دکھانے یا لیبل دکھانے کی پابند ہے۔

اس کے بعد، "ایکشنز" کالم میں ترمیم کی جاتی ہے جہاں پہلے ہمارے پاس صرف "ڈیلیٹ" کا لنک ہوتا تھا، اب ہم 2 مزید لنکس شامل کریں گے، ایک "ترمیم" کے لیے اور دوسرا معلومات کو ایڈٹ کرنے کے بعد "محفوظ" کرنے کے لیے۔



جیسا کہ ہم دیکھ سکتے ہیں، اب بالترتیب ترمیم، محفوظ اور حذف کرنے کے طریقوں کے لیے 3 لنکس موجود ہیں، تاہم ترمیم اور محفوظ کرنے کے لیے رینڈر شدہ خاصیت ہوتی ہے جو ایک وقت میں 3 میں سے صرف 2 لنکس کو ظاہر کرتی ہے (یاد رکھیں کہ رینڈرڈ صحیح یا غلط پر مشتمل ہے۔ شرط پر) لہذا ڈیفالٹ کے طور پر حذف کرنے والا لنک ہمیشہ ظاہر ہوگا کیونکہ اس میں پیش کردہ پراپرٹی نہیں ہے، جبکہ ترمیم اور محفوظ کرنے کو کبھی بھی ایک ساتھ نہیں دیکھا جائے گا۔ (آپ کو لنکس کے درمیان ایک جگہ شامل کرنے کی اجازت دیتا ہے)

اندرونی طور پر، گرافیکل سطح پر، ڈیٹا ٹیبل اس طرح نظر آئے گا:


اگرچہ گرافک طور پر آپ تمام اجزاء کو ایک ساتھ دیکھ سکتے ہیں، لیکن یہ بہت واضح ہونا ضروری ہے کہ پیش کردہ پراپرٹی صرف اس وقت صحیح یا غلط قدر کے لحاظ سے اجزاء کو دکھائے گی۔

index.xhtml میں ترمیم کرنے کے بعد، اب Person.java کلاس میں ترمیم کرنے کا وقت آگیا ہے جس میں مذکورہ رینڈرر کے ذریعہ استعمال کردہ "ترمیم" پراپرٹی کو شامل کیا گیا ہے۔


جیسا کہ ہم دیکھ سکتے ہیں، ایک نئی بولین وصف اس کے متعلقہ سیٹ اور حاصل سے منسلک ہے۔ مزید برآں، ورزش کے ڈھانچے کو ایڈجسٹ کرنے کے لیے، ہم نے پراپرٹی کو پیرامیٹرائزڈ کنسٹرکٹر میں شامل کیا، حالانکہ اس وقت مشق میں اس کا استعمال نہیں کیا جاتا ہے۔

اس طرح، index.xhtml میں ہر بار رینڈرڈ=”#{data.edit}” کیا جائے گا، یہ اس متغیر کو کال کرے گا، جو کیس کے لحاظ سے اجزاء کو دکھانے یا چھپانے کی اجازت دے گا۔


آخر کار، اور پچھلی تبدیلیوں کے ساتھ، ہم نے بین کلاس میں ترمیم کرنا شروع کر دی جہاں ہمیں حذف اور محفوظ کرتے وقت متعلقہ طریقے شامل کرنے چاہئیں جنہیں "ایکشن" فیلڈ سے بلایا جاتا ہے۔


جیسا کہ ہم دیکھ سکتے ہیں، editPersona() طریقہ ایک شخص کو اعتراض (jsf کال سے، جیسا کہ حذف کرنے کے طریقہ میں کیا جاتا ہے) وصول کرتا ہے اور اس کی "edit" کی خاصیت میں ترمیم کرکے اسے ویلیو true بھیج دیا جاتا ہے، جو اس ریکارڈ کو چھپانے کی اجازت دے گا۔ دی اور دکھائیں اور مطلوبہ ترمیم کرنے کے لیے۔

دوسری طرف، savePersona() طریقہ فہرست میں موجود تمام اشیاء کی ہر "Edit" خاصیت کو غلط میں تبدیل کرنے کا ذمہ دار ہوگا تاکہ ڈیٹا ٹیبل لوگوں کی اقدار کے ساتھ بحال ہو نہ کہ قابل تدوین عناصر کے ساتھ۔


سسٹم کو چلاتے وقت ہمارے پاس درج ذیل ہوں گے:


اور جب آپ ترمیم کو دباتے ہیں تو سسٹم میں تبدیلی آتی ہے:

جیسا کہ دیکھا جا سکتا ہے، جب ترمیم کے لنک پر کلک کیا جاتا ہے تو، قابل تدوین اجزاء خود بخود دکھائے جاتے ہیں جب کہ ناقابل ترمیم والے چھپ جاتے ہیں، اسی طرح ترمیم کا لنک غائب ہو جاتا ہے تاکہ اوپر بیان کردہ لنک کو محفوظ کرنے کا راستہ بنایا جا سکے۔

اور تیار!!!

میں اپنے بلاگ پر اور اپنے چینل پر اس عظیم پروگرامنگ لینگویج کے بارے میں مواد شیئر کرتا رہا ہوں، آپ کو بہت سے مضامین ملیں گے اور شروع سے ویڈیوزمیں آپ کو دکھاتا ہوں کہ پروگرامنگ شروع کرنے کے لیے ضروری ٹولز کیسے ڈاؤن لوڈ کیے جائیں، ہم بنیادی تصورات کے ذریعے زیادہ سے زیادہ اوپر جاتے ہیں۔ آبجیکٹ پر مبنی پروگرامنگ کے تصوراتمعیارات عنواناتڈیٹا ڈھانچے، ڈیٹا بیس تک رسائی، دوسروں کے درمیان، تعمیر تک صارف انٹرفیس کے ساتھ ایپلی کیشنز.

اس کے علاوہ آپ ایک تلاش کر سکتے ہیں شروع سے کورس جہاں میں Android پر موبائل ایپلیکیشنز بنانے کا طریقہ سکھاتا ہوں۔ ایک قدم بہ قدم ویڈیو ترتیب کے ذریعے جو مسلسل اپ ڈیٹ ہوتا رہتا ہے۔


اور اب میں اس سلسلے کو بھی شروع سے شروع کروں گا جہاں ہم جاوا انٹرپرائز ایڈیشن کی دنیا میں داخل ہوں گے، میں آپ کو دکھاؤں گا کہ ترقی کے ماحول کو کیسے ترتیب دیا جائے اور جاوا کے ساتھ اپنی پہلی ویب ایپلی کیشنز کیسے بنائیں۔


اسی لیے میں آپ کو وزٹ کرنے کے لیے codejavu.blogspot.com پر جانے کی دعوت دیتا ہوں۔ میرا چینل کرسٹین ہیناو اور یہ کہ وہ نئے سیکوئلز سے بہت واقف ہیں۔

اس میں آپ کی دلچسپی بھی ہو سکتی ہے۔

کیا آپ اس اندراج کے بارے میں کچھ شامل کرنا یا تبصرہ کرنا چاہتے ہیں؟ کرنے کے لئے آزاد محسوس کریں…اور اگر آپ کو یہ پسند آیا تو میں آپ کو اشتراک کرنے کی دعوت دیتا ہوں۔ Y اس طرح کی مزید پوسٹس کے بارے میں جاننے کے لیے "اس سائٹ میں شامل ہوں" بٹن استعمال کرکے سائن اپ کریں۔ 😉