« ساخت 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@ درج نماييد:
ماژول 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;
Private DukesBirthdayRemote dukesBirthday;
ا�?زودن property ها به Bean:
7. پس از تعري�? متغير dukesBirthday متغيرهاي زير را بعد از آن درج نماييد:
7. پس از تعري�? متغير dukesBirthday متغيرهاي زير را بعد از آن درج نماييد:
private int age;
private Date YourBD;
private int ageDiff;
private int absAgeDiff;
private Date YourBD;
private int ageDiff;
private int absAgeDiff;
8. با ا�?زودن کدهاي زير به constructor پيش ساخته، متغيرها را initialize نماييد:
age = -1;
YourBD = null;
ageDiff = -1;
absAgeDiff = -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. وارد قسمت زير شويد:
در اين مرحله با است�?اده از امكانات 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;
}
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 کدهاي زير را وارد نماييد:
داخل متد getAgeDiff درست قبل از دستور return کدهاي زير را وارد نماييد:
ageDiff = dukesBirthday.getAgeDifference(YourBD);
if (ageDiff < 0) {
setAbsAgeDiff(Math.abs(ageDiff));
} else {
setAbsAgeDiff(ageDiff);
}
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 باقي مانده كه در مطالب آينده آنها را پياده سازي خواهيم نمود. براي يادآوري اين تصوير را دوباره مشاهده كنيد.
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 باقي مانده كه در مطالب آينده آنها را پياده سازي خواهيم نمود. براي يادآوري اين تصوير را دوباره مشاهده كنيد.
نظرخواهی