لمحة جافاوية خاصة : تدفق الصفحات في jsf

السلام عليكم

كيف حالكم يا شباب؟
هل تشربون الحليب كل يوم؟
لماذا أسألكم
بالطبع لأني لا أشرب الحليب
كم كنت ومازلت أبغضه
ولا أعرف لذلك سبباً
على أية حال هذه حرية شخصية
لكن واسمحولي لا أريد أن أرى من يشرب الحليب في صفي اليوم
كنوع من أنواع التعذيب
لماذا أعذب من يشرب الحليب؟
ببساطة لأن جميعنا كنا نعاقب بسبب الحلبيب
إما لكوننا نحاول التهرب من شربه
أو لوكننا نشربه ولكننا لا نحبه
وهو لعمري عذاب أسطوري
بالطبع باستثناء تلك الثلة التي كانت تحب شربه
لهذا فأنا أجد من الجميل أن نراهم يتعذبون
(لا أعرف لماذا يذكرني صفك بموضوع الحليب هذا)
طبعاُ هذا عبده ومن غيره
وبالطبع اللئيم يقصد أن صفي تعذيب لمن يحضره ولمن يتركه
وأتمنى لو يوضح هذا اللئيم
(ببساطة من يحضر يعاني من استظرافك ودمك الخفيف
ومن لا يحضر عندما يريد أن يحضر سيعاني من اعتباره
مجرد جاهل لا يفقه شيئاً على اعتبار تفاهتك التي تتكلم عنها
يمكن أن تسمى علماً)
احم احم
على كل حال لا أعرف ما الذي أعاد الأخ عبده للجافا
بعد أن انتقل إلى معسكر العدو
يبدو أنه يستلذ بتعذيبي
وكأني ضابط فرنسي وقع أسيراً في يد الجيشتابو الألماني
دعوكم مني ومن عبده ومن لعبة الهر والفأر التي تدور بيننا
ودعونا نتكلم عن لمحة اليوم
الجميع لاحظ أني لم أعطها رقماً
والسبب أني سأتكلم اليوم عن جزء من J2EE وليس J2SDK
على كل حال ربما أغير رأيي وأعطيها رقماُ
وربما أفرد لهذا الفرع من جافا تلميحاته الخاصة به
الموضوع يتكلم عن JSF
والسؤال الأبدي كيف يمكنني أن أتحكم في الصفحة التي تظهر للمستخدم بعد أن ضغط على زر button في صفحتي
وكعادتي في خطوات أجمل الإجابة
الخطوة الأولى
نضيف قواعد التصفح navigation-rule في ملف faces-config
مثال على ذلك

<navigation-rule>
<from-view-id>/Page1.jsp</from-view-id>
<navigation-case>
<from-outcome>action</from-outcome>
<to-view-id>/goToHell.jsp</to-view-id>
</navigation-case>
</navigation-rule>

نلاحظ هناك أربع وسوم tags داخلية في الوسم navigation-rule
الوسم الأول from-view-id
وهو يحدد الصفحة التي سنكون فيها لكي تطبق هذه القاعدة
الوسم الثاني navigation-case
وهذا يمثل الحالة ولكل حالة يتكرر وجود هذا الوسم
بمعنى أنه لو أني في صفحة تسجيل
وبعد هذا أريد أن أحول المستخدم إلى إحدى صفحتين
إما شكر على التسجيل أو طلب تغيير البريد الإلكتروني
سيكون لدي هذا الوسم متكرر مرتين
الوسم الثالث from-outcome
هذا الوسم نأجل الحديث عنه إلى حينه
الوسم الرابع to-view-id
هذا الوسم يمثل الصفحة التي سيتم الإنتقال لها عند حدوث الحالة

الخطوة الثانية
نضيف فاصولياء bean إلى ملف faces-config

<managed-bean>
<managed-bean-name>Page1</managed-bean-name>
<managed-bean-class>webapplication1.Page1</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>

الوسم الرئيسي هنا managed-bean
وهو يعني أن هذه الفاصولياء مدارة بواسطة JSF
نلاحظ لدينا ثلاث وسوم في الوسم managed-bean
هذه الوسوم تمثل اسم الفاصولياء المستخدم في مكونات JSF
واسم الفئة الخاصة بالفاصولياء
والمدى الخاص بهذه الفاصولياء

الخطوة الثالثة
نقوم بعمل النموذج Form الخاص بنا باستخدام المكونات الخاصة بـ JSF
بعد هذا نضيف الزر للنموذج
والذي سيكون شبيه بالتالي

<h:commandButton action="#{Page1.button1_action}" id="button1" value="ok"/>

نلاحظة ملاحظتة هنا وهي أنا استخدمنا
اسم الفاصولياء الذي ذكر في الوسم managed-bean-name
وليس اسم الفئة نفسها

الخطوة الرابعة والأخيرة
نقوم بعمل الدالة button1_action في الفئة التي ذكرت في الوسم managed-bean-class

public String button1_action() {
return "action";
}

وهنا نقوم بإرجاع إحدى القيم التي ذكرت في الوسم from-outcome
التي ذكرناها في الخطوة الأولى
بالطبع ما دمنا نكتب شيفرة جافا فبإمكننا إجراء أي فحوصات نريد
أوووووووف مللت من الكتابة
لأننا نكتبها يدوياً
لكن الموضوع أبسط عندما تتعامل مع IDE مثل eclipse أو NetBeans
أنا انتهيت اليوم
أية أسئلة أنا جاهز

تحياتي

Tags: , , , , , , , ,

11 Responses to “لمحة جافاوية خاصة : تدفق الصفحات في jsf”

  1. shado قال:

    تحياتي …
    لا غبار …والا رايتني انفخ …

    لكن
    /Page1.jsp

    action
    /goToHell.jsp
    انت ذكرت مثال صغير اعجبني ..رسالة ترحيب مثلا ..كنت تسجل انت يا علاء ثم تضهر لك
    صفحة اعادة توجيه ترحيبية ركز على اعادة توجيه ..ول تكن بال html وليست بالjsp
    اذا انت تستدعي page1.jsp لتنادي تلك hello.html مثلا …
    اذا اضن action للـpage1 التي سوف تستدعي صفحة الترحيب
    الا اذا كنت تقصد شئ ..قد فقدت منه ايصال الفكرة لنا بسبب الشح بالامثلة

    الله معك..

  2. admin قال:

    لا بالطبع شادي
    أنا لا أتكلم عن الصفحات الغبية التي تقوم بالتحويل من صفحة إلى أخرى
    أنا أتكلم عن النماذج التي تقوم مثل عملية التسجيل وعملية البحث
    أي نموذج form والتي تحتاج إلى button لنقلك إلى صفحة أخرى

    تحياتي

  3. م. انس حمو قال:

    يا خيستي عليا كل هاد عشان انتقل من صفحة لتانية بزر !!!

    الله يعز ASP.NET

    تحياتي يا علوش

  4. admin قال:

    هو الموضوع أسهل من ماهو عليه هنا
    مع استخدام IDEs مثل Eclipse Netbeans
    لكني أحاول أن أساعد من يعمل بدونها
    لكن تظل مايكروسوفت -وأنا أعترف بذلك- ملكة التبسيط
    على كل حال
    أسعدني مرورك م. أنس
    ومشتاقلك كثير

    تحياتي

  5. تعليق قال:

    تعليقي مش في صلب الموضوع, بس حبيت أذكر إن عشان الحياة تستمر بخير من دون مشاكل, لازم الواحد يعمل بعض حاجات مبيحبهاش أو حتى بيكرهها. وشرب الحليب بشكل دوري من الحاجات دي.لإنه مهم جدا” لجميع الأعمار وتركه بيضر جدا” في نواحي عديدة منها هشاشة العظام وأنا متأكد إن الناس اللي مكانتش بتشرب الحليب وجالها هشاشة عظام كانوا في الأول فرحنين ومبسوطين بس لما بدأت عظامهم تؤلمهم, تمنوا لو كانوا بيشربوه كل يوم. وربنا يحفظنا أجمعين…

  6. deepfreeze قال:

    بارك الله فيك – ولكن لى تعليق بسيط على الفاصوليا

    انا لا افهم معناها؟؟؟؟؟؟؟؟؟؟؟؟

  7. admin قال:

    أقصد بالفاصولياء bean

    تحياتي

  8. العيافي قال:

    هلا اخي علاء ..
    بالنسبة لي استخدمت Struts الاصدار الاول ، و استخدمت JSF،
    وارى ان Struts اكثر وضوحا من JSF ، ففي JSF تحدث اشياء غريبة (استثناءات) و يصعب تتبع الاخطاء فيها.

    على اي حال احاول حاليا استخدام richfaces وهي من بنات JSF وسأحاول ان شاء الله كتابة تجربتي في منتدى الفريق العربي قريبا ان شاء الله تعالى.

  9. admin قال:

    منور أخي العيافي
    لست متمكناً من JSF مئة بالمئة
    عملت عليها مرة لتعديل على مشروع مفتوح المصدر
    وكانت تجربة سيئة جداً
    لا أعلم إن كان بسبب قلة معلوماتي عنها أو بسبب سوء المشروع الذي عملت عليه
    لكني في النهاية أعتقد أنها بحاجة إلى أدوات مرفقة معها تساعدك في ضبط الموضوع

    تحياتي

  10. ماهذا الجمال يا علاء…
    بصراحه أشعر بإنك إنسان أخر عن ما أنت عليه في المنتدي… فأنت في المنتدي تقوم بدور PM فقط لا غير ….

    المهم… درس جميل جدا…… شكرا لك…
    بالمناسبه… يعجبني إستخدامك للعربيه في كل مصطلحاتك (الفاصولياء :D)

  11. admin قال:

    في المنتدى هناك واحد يجب أن يكون مسؤولاً عن إدارة العملية
    وللأسف كان أنا بحكم أني الأقدم والذي عرض الإشراف على الأغلب هناك
    وهذا يعني ببساطة أني مضطر أن لا أجعلكم تحسون بفارق كبير
    حتى لا تتنحوا عن الموضوع من أوله لكن انتظر حتى تتعودوا أكثر فتريحوني من العبء الإداري

    أحب العربية وأرى أن من حق من يجهل الإنجليزية أن يتعلم
    فلماذا بالله عليك أكتب بغير العربية :(

    تحياتي

Leave a Reply