الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

شرح : إنشاء قائمة عناصر في صفحة Jsp قابلة للزيادة والنقصان ، وجلب عناصرها من قاعدة بيانات .

بدأه rohaili في 21 سبتمبر 2009 · 8 رد · 1,752 مشاهدة · في JavaEE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بســم الله الـرحمــن الرحيــم

السلام عليكــم ورحمـة الله وبركاتــه ،،

تقبل الله طاعتكم وبالجنة أثابكم ، وكل عام وأنتم بخير .

فيما يلي شرح لكيفية إنشاء قائمة عناصر في صفحة jsp قابلة للزيادة والنقصان ، وجلب عناصرها من قاعدة بيانات .

1 - إنشاء قاعدة بيانات لحفظ عناصر القائمة ، بحيث يمكن إضافة عناصر وحذفها من القاعدة ، لن أتطرق لشرحه هنا ( ليس موضوعنا ) .

2 - إضافة وسم القائمة إلى الصفحة ولنسمه list :


</select>
<select name="list">

3 - إنشاء الدالة list ، والتي تعود بعناصر القائمة من قاعدة البيانات ، وذلك بعد إحاطتها بالعلامات المناسبة ليتسنى وضعها بين وسمي القائمة السابقين :



//الإتصال بقاعدة البيانات
connectionpool pool = connectionpool.getinstance();
Connection conn = pool.getconnection();
PreparedStatement ps = null;
ResultSet rs = null;

//تحديد الجدول table1
String query = "SELECT * FROM table1";

try{
ps = conn.prepareStatement(query);
rs = ps.executeQuery();

String s = "";

//الحلقة التالية تجلب العناصر الموجودة في العمود المسمى col1
// وتحيط كل عنصر بـ <option></option>
//وتحفظها في النص s
while ( rs.next() ){
s += "<option>" + rs.getString("col1") + "</option>";
}
return s;
}
catch(SQLException se){
se.printStackTrace();
//عند حصول خطأ في الإتصال بقاعدة البيانات تظهر الرسالة التالية
return "<option>خطا عند الإتصال بقاعدة البيانات</option>";
}
finally{
//إغلاق الإتصال
dbutil.closeresultset(rs);
dbutil.closepreparedstatement(ps);
pool.freeconnection(conn);
}
}
public static String getList(){

4 - استدعاء الدالة list الموجودة في الصنف class1 الموجود في المجموعة pack1 ، وذلك بين وسمي القائمة :


<%=pack1.class1.getList()%>
</select>
<select name="list">

بالتوفيق .

300_130.gif

#2

جزاك الله خيرا

#3

لماذا لا تحولها إلى عمل أكثر اتقاناً

سأشرح لك الفكرة ببساطة

تقوم بعمل فئة class اسمها Option يحتوي على ثلاث خصائص name و value و selected

ثم تقوم بعمل فئة اسمها WebMenu تحتوي على خاصية واحدة ألا وهي options

وتحتوي على بعض الدوال المساعدة

بحيث بدل ما تقوم باستقدام القائمة من قاعدة البيانات كل مرة

تقوم بذلك مرة واحدة عند أول طلب للموقع الخاص بك

ثم بعد ذلك تحتفظ به في ServletContext وتستفيد منه عند كل طلب جديد

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#4

جزاك الله خيرا ، فكرة رائعة ، تقلل الضغط على قاعدة البيانات ، وسوف أحاول تنفيذها .

300_130.gif

#5

I don't know if my solution beneath is more efficient than,mr.Alaa one but I'll mention it anyway

<sql:query var="subjects" dataSource="jdbc/IFPWAFCAD">

SELECT subject_id, name FROM Subject

</sql:query>

the subject varable now contain the list items

then using the Expression Language (Or unfied EL (java EE 5))

and JSTL foreach TAG etc...

<select name="subject_id">

<c:forEach var="subject" items="${subjects.rows}">

<option value="${subject.subject_id}">${subject.name}</option>

</c:forEach>

</select>

تم تعديل هذه المشاركة بواسطة JDurrah في 23 سبتمبر 2009 في 20:18

#6

نستطيع القول أنه نفس الحل تقريباً

ما عدا أني لا أعرف متى يتم تحديث القائمة

أقصد لو كانت القائمة تزيد عن طريق المشرف على الموقع أو الأعضاء الآخرين

فهل JSTL تعمل على تحديث هذه ds أم ماذا بالضبط

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#7
JDurrah كتب:

I don't know if my solution beneath is more efficient than,mr.Alaa one but I'll mention it anyway

<sql:query var="subjects" dataSource="jdbc/IFPWAFCAD">

SELECT subject_id, name FROM Subject

</sql:query>

the subject varable now contain the list items

then using the Expression Language (Or unfied EL (java EE 5))

and JSTL foreach TAG etc...

<select name="subject_id">

<c:forEach var="subject" items="${subjects.rows}">

<option value="${subject.subject_id}">${subject.name}</option>

</c:forEach>

</select>

إستخدام رائع لل EL & JSTL لكني أجد المشكله هنا :

اقتباس
<sql:query var="subjects" dataSource="jdbc/IFPWAFCAD">

SELECT subject_id, name FROM Subject

</sql:query>

أظن أنه لا يحبذ وضع أي لوجيك في صفح ال JSP طبقا لل MVC pattern

#8

عفوا ؟؟؟

تم تعديل هذه المشاركة بواسطة العيافـي في 24 سبتمبر 2009 في 18:28

#9

جزاك الله خيرا

الله اكبر والعزة لله

متى أصلى فى القدس

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…