« ساخت firstcup Web Client | صفحه اصلی | ساخت صفحه greeting.jsp »

ساخت DukesBDay Managed Bean

January 5, 2008 02:52 PM

افزودن Dependency روي Enterprise Bean Module
ماژول firstcup-war به برخي از کلاس هاي firstcup-ejb وابسته است. شما بايد وجود اين وابستگي را به NetBeans اعلام نماييد. بدين ترتيب:
1. روي ماژول firstcup_war کليک راست نماييد و properties را انتخاب نماييد.
2. از category ها Libraries را انتخاب نماييد.
3. روي Add Project کليک کنيد.
4. مسير myexample/firstcup را انتخاب نماييد.
5. پروژه firstcup-ejb را انتخاب کنيد.
6 دکمه Add Project JAR Files را کليک کنيد.
7. توجه کنيد که Build Required Projects تيک خورده باشد.
8. OK را کليک نماييد.

ساخت كلاس DukesBDay و تعريف متغيرهاي لازم
DukesBDay يک Backing Bean است. منظور از Backing Bean، يک Bean کنترل شده (managed Bean ) توسط JSF است که براي ذخيره سازي داده هاي مربوط به مقادير کامپوننت هاي موجود در صفحه JSF به کار مي رود.
DukesBDay در واقع واسط بين صفحات JSF و Business Tier است. صفحات JSF اطلاعات مورد نياز خود را از اين managed Bean دريافت مي كنند و به آن نيز تحويل مي دهند.
براي ساخت کلاس DukesBDay اين مراحل را انجام دهيد:

ساخت يک کلاس خالي:
1. روي ماژول firstcup-war کليک راست کنيد.
2. از New گزينه Java Class را انتخاب نماييد.
3. نام کلاس را DukesBDay قرار دهيد.
4. Package را com.sun.firstcup.web وارد کنيد.
5. Finish را کليک کنيد.

افزودن Enterprise Bean Reference:
6. درست بعد از سطر تعريف کلاس (اولين سطر از بدنه کلاس) متغير private زير را به همراه عبارت EJB@ درج نماييد:
@EJB
Private DukesBirthdayRemote dukesBirthday;
افزودن property ها به Bean:
7. پس از تعريف متغير dukesBirthday متغيرهاي زير را بعد از آن درج نماييد:
private int age;
private Date YourBD;
private int ageDiff;
private int absAgeDiff;
8. با افزودن کدهاي زير به constructor پيش ساخته، متغيرها را initialize نماييد:
age = -1;
YourBD = null;
ageDiff = -1;
absAgeDiff = -1;
ساخت متدهاي دستيابي (Accessor Methods) براي property ها
در اين مرحله با استفاده از امكانات refactoring موجود در NetBeans متدهاي get و set را ايجاد مي كنيم. بدين ترتيب:
1. روي اديتور کليک راست کنيد.
2. از منوي باز شده گزينه Refactor و سپس Encapsulate Fields را انتخاب نماييد.
3. در فرمي که باز مي شود، تيک مربوط به getDukesBirthday و setDukesBirthday را برداريد.
4. Next را کليک نماييد.
5. در پنل refactoring روي Do Refactoring کليک کنيد. با اين کار کدهاي مربوط به get و set متغيرها به کلاس اضافه خواهند شد.

افزودن كدهاي لازم جهت دريافت سن Duke
1. ماژول firstcup-war را باز کنيد.
2. قسمت Web Service Refrences را باز کنيد.
3. وارد قسمت زير شويد:
DukesAgeService->DukesAgeService->DukesAgePort->getDukesAge
4. از اديتور در فايل DukesBDay.java متد getAge را بيابيد. سپس getDukesAge را که در مرحله قبل انتخاب نموده ايد به متد getAge قبل از عبارت return age با ماوس drag نماييد. محتويات اين متد پس از انجام اين عمل چنين خواهد شد:

public int getAge() {       

   try { // Call Web Service Operation

   com.sun.firstcup.webservice.DukesAgeService service = 

new  com.sun.firstcup.webservice.DukesAgeService();

   com.sun.firstcup.webservice.DukesAge port = service.getDukesAgePort();

   // TODO process result here

   int result = port.getDukesAge();

   System.out.println("Result = "+result);

   } catch (Exception ex) {

       // TODO handle custom exceptions here

   }

   return age;

}



5. در کدهاي متد getAge خط


int result = port.getDukesAge();


را حذف کنيد و به جايش عبارت زير را قرار دهيد.


age = port.getDukesAge();


6. خط زير را حذف نماييد:


System.out.println("Result = "+result);


افزودن كدهاي دريافت تفاوت سن از DukesBirthdayBean

داخل متد getAgeDiff درست قبل از دستور return کدهاي زير را وارد نماييد:


ageDiff = dukesBirthday.getAgeDifference(YourBD);

if (ageDiff < 0) {

    setAbsAgeDiff(Math.abs(ageDiff));

} else {

    setAbsAgeDiff(ageDiff);
}


افزودن Imort ها

1. روي اديتور کليک راست کنيد.

2. گزينه Fix Imports را انتخاب کنيد.

3. عبارت java.util.Date را براي کلاس Date انتخاب نماييد.

4. OK را کليک کنيد.



در خاتمه فايل را ذخيره نماييد.



تنظيم پيکربندي DukesBDay

تکنولوژي JSF امکان استفاده از فايل هاي Configuration را براي مقداردهي اوليه، پيکربندي و ذخيره سازي managed Bean ها در 3 scope زير مي دهد:

• Request که وقتي کاربر صفحه اي را submit مي کند آغاز مي شود و پس از ارسال پاسخ پايان مي پذيرد.

• Session که با اولين دسترسي کاربر به صفحه آغاز مي شود و پس از خاتمه يافتن session کاربر ، پايان مي يابد.

• Application که تا زماني که سرور، Application را متوقف نکرده اعتبار دارد.



Scope در managed Bean مثال ما session است.

به محض اينکه Bean ، پيکربندي شد يک صفحه JSF مي تواند آن را ايجاد کند و به آن دسترسي داشته باشد. در اينجا ما پيکربندي DukesBDay managed Bean را انجام مي دهيم:

1. ماژول firstcup-war را باز کنيد.

2. فولدر Web Pages و سپس WEB-INF را باز کنيد.

3. روي faces-config.xml دبل کليک نماييد.

4. روي اديتور کليک راست کرده و از JavaServer Faces گزينه Add Managed Bean را انتخاب کنيد.

5. نام Bean را dukesBDay وارد کنيد.

6. کلاس را com.sun.firstcup.web.DukesBDay قرار دهيد.

7. از منوي scope گزينه session را انتخاب کنيد.

8. در قسمت Description نيز عبارت DukesBDay backing bean را وارد کنيد.

9. Add را کليک کنيد. با اينکار عناصر XML مربوطه به فايل اضافه مي شوند.

10. فايل را ذخيره نماييد.




از Application نمونه اي ما تنها صفحات greeting.jsp و respone.jsp باقي مانده كه در مطالب آينده آنها را پياده سازي خواهيم نمود. براي يادآوري اين تصوير را دوباره مشاهده كنيد.

mahyar_ev | 02:52 PM

 

نظرخواهی

نظر شما چيست؟










Remember personal info?




برای ثبت نظر کلمه submit را در کادر زیر وارد کنید.