السلام عليكم ..
سؤال آخر .. أتمنى أن تقرؤوه بهدوء .. وبصبر وتؤدة .. فهو طويل و ممل نوعاً ما :-( .
لنفرض أن لدي نظام ما يحتوي على جدول user و message و group و .... في قاعدة البيانات ، وأريد أن أوفر خدمة :
- عرض جميع المستخدمين الموجودين في قاعدة البيانات على شكل جدول ( جدول html عادي ) .
- عمل نفس الشي مع المقالات - الرسائل - وغير ذلك ..
عملت الجدول بالـ html .. بشكل ديناميكي ، في صفحة jsp .. لعرض جميع الرسائل Inbox .. بشكل شبيه بالتالي :
<% for (int i = 0; i < v.size(); i++)
{
Event e = v.get(i);
Group g = e.getGroup();
String content = e.getContent();
String title = "";
String isRead = e.getIsRead();
User user = new UserModel().getById(e.getSenderId());
if(content!=null ){
title = content.substring(0,Math.min(40, content.length()));
title = title + "...";
}
%>
<tr class="head">
<td><% if(isRead!= null && isRead.equals("0")){%>
<b><%}%>
<a href="index.jsp?component=events_center&id=<%=e.getId()%>"><%=title%></a>
<%if(isRead != null && isRead.equals("0")){%>
</b><%}%>
</td>
<td><%=user.getDisplayName()%></td>
<td><%=e.getSendTime()%></td>
<td><%=g.getId()%></td>
<td><%=g.getName()%></td>
</tr>
<%}%>النتيجة جدول جميل .
ولكن لاحظت .. أني أقوم بتكرار نفس الشيء مع كل صفحة ، فهناك جدول لعرض المجموعات وآخر لعرض المستخدمين .. وكلها بنفس الأسلوب ، مع اختلاف المحتوى فقط .
لذلك ، ما اريد أن أقوم به هو تصميم شيء ما ، استخدمه ، بدون أن أكرر كتابة الكود في كل مرة .
السؤال /
ماهي أفضل طريقة لتصميم " هذا الشيء " الذي يغنيني عن تكرار الكود في كل مرة ؟
فكرت في أن أعمل كلاس عادي ، اسمه Table مثلاً .. ويبدو بهذا الشكل :
class Table{
void drawTable(Header h,Vector<Row> rows, PrintWriter out)
{
out.print("<table>");
for(...)
out.print("<tr>");
for(..)
out.print("<td>");
}ثم في صفحة JSP ،
<% header = createHeader(); Vector vectorOfRows = createRows(); Table t = new Table(); t.draw(header,vectorOfRows , out); %>
في الحقيقة .. أشعر أن الكود بهذا الشكل غير منظم .. حيث jsp صارت تتدخل في Model .
و صار الكلاس Table للعرض .. بالرغم من أن العرض من المفروض أن يكون من صلاحيات jsp .
أنت كمبرمج .. ماذا ستفعل في هذه الحالة ؟
JSP/ Servlets جننتني ..:wacko: ، لذلك ترى الموضوع مكتوب الساعة 1:30 ليلاً .. بتوقيت مكة ، وأنا على هذا الحال من شهر .. لا أنام الليل بسببها :S


