« December 2007 | صفحه اصلی | March 2008 »
يك كد جاوا اسكريپت ديگر براي فرمت بندي HTMLJanuary 28, 2008 02:15 PM
mahyar_ev | 02:15 PM | Comment(s)(2)
دانلود firstcupJanuary 27, 2008 02:39 PM
در ضمن باعث خوشحالي من است كه دوستاني كه اين مطالب را مي خوانند نظرات خود را درباره آن اعلام كنند.
به نظر شما مجموعه مطالب مربوط به firstcup چطور بود؟ كم و كسري هايش چه بود؟ آيا اين رويه را ادامه دهم يا خير؟ چه پيشنهاد يا انتقادي براي بهتر شدن مطالب داريد؟
ممنون
mahyar_ev | 02:39 PM | Comment(s)(0)
جرعه آخر firstcupJanuary 8, 2008 11:08 AM
اين پروژه شامل دو صفحه jsp است كه از تكنولوژي JSF در آنها استفاده شده. يكي greeting.jsp و ديگري response.jsp است. قواعد حرکت بين صفحات JSF بايد در فايل configuration تعريف شود. اين کار در مورد مثال جاري بدين صورت انجام مي شود:
1. ماژول firstcup-war را باز کنيد.
2. فولدر Web Pages و سپس WEB-INF را باز کنيد.
3. روي faces-config.xml دبل کليک نماييد.
4. روي اديتور کليک راست کنيد و از قسمت JavaServer Faces گزينه Add Navigation Rule را انتخاب نماييد.
5. در فيلد Rule from view عبارت greeting.jsp/ را وارد کنيد.
6. دکمه Add را کليک کنيد.
7. مراحل 4 تا 6 را تکرار کنيد. با اين تفاوت که اين بار عبارت response.jsp/ را بعنوان Rule From view وارد کنيد.
8. روي اديتور کليک راست کنيد و از JavaServer Faces گزينه Add Navigation Case را انتخاب کنيد.
9. فيلد From View را greeting.jsp/ انتخاب نماييد.
10. در فيلد From Outcome عبارت success را وارد کنيد.
11. فيلد To View را response.jsp/ انتخاب نماييد.
12. Add را کليک کنيد.
13. مراحل 8 تا 12 را تکرار کنيد. با اين تفاوت که اين بار response.jsp/ را در From View و greeting.jsp/ را در To View وارد کنيد.
بدين ترتيب دو Navigation Rule خواهيد داشت. يکي از greeting.jsp به response.jsp و ديگري برعکس.
در پايان فايل را ذخيره نماييد.
ساخت صفحه response.jsp
1. روي ماژول firstcup-war کليک راست نماييد.
2. از قسمت New گزينه JSP را انتخاب کنيد.
3. نام فايل را response وارد کنيد.
4. Finish را کليک کنيد.
5. در فايل response.jsp تگ head را تغيير دهيد که اينگونه گردد:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Response Page</title>
</head>
7. تگ <h1> را نيز به همراه تگ خاتمه و محتوياتش حذف نماييد.
8. تگ هاي زير را پس از تگ بسته شدن head قرار دهيد.
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<h:form>
<h2><h:outputText value="#{bundle.YouAre} " />
<h:outputText value="#{bundle.SameAge}" rendered="#{dukesBDay.ageDiff == 0}"/>
<h:outputText value="#{dukesBDay.absAgeDiff}" rendered="#{dukesBDay.ageDiff < 0}"/>
<h:outputText value=" #{bundle.Year} " rendered="#{dukesBDay.ageDiff == -1}"/>
<h:outputText value=" #{bundle.Years} " rendered="#{dukesBDay.ageDiff < -1}"/>
<h:outputText value="#{bundle.Younger}" rendered="#{dukesBDay.ageDiff < 0}"/>
<h:outputText value="#{dukesBDay.absAgeDiff}" rendered="#{dukesBDay.ageDiff > 0}"/>
<h:outputText value=" #{bundle.Year} " rendered="#{dukesBDay.ageDiff == 1}"/>
<h:outputText value=" #{bundle.Years} " rendered="#{dukesBDay.ageDiff > 1}"/>
<h:outputText value="#{bundle.Older}" rendered="#{dukesBDay.ageDiff > 0}"/>
</h:form>
</f:view>
در اين مرحله شما DukesBirthdayBean و firstcup web client راا Build خواهيد نمود، آنها را در فايل هاي EAR بصورت package درخواهيد آورد. فايل هاي EAR را در سرور deploy خوهيد نمود و سرانجام App را اجرا خواهيد کرد.
آماده سازي Deployment Descriptor
در اين مرحله برخي پارامترها که خود NetBeans در فايل Deployment Descriptor ايجاد کرده، اما ما به آنها نياز نداريم را پاک خواهيم کرد. بدين ترتيب:
1. ماژول firstcup-war را باز کنيد.
2. فولدر Configuration Files را باز کنيد.
3. روي web.xml دبل کليک نماييد.
4. در بالاي پنجره اديتور، روي تب General کليک نماييد.
5. علامت + کنار Context Parameters را انتخاب کنيد. با اين کار يک جدول باز مي شود.
6. از جدول مذکور تک تک پارامترها را انتخاب کنيد و با دکمه remove همه آنها را يکي يکي پاک نماييد.
7. در بالاي اديتور روي تب XML کليک کنيد.
8. عنصر welcome-file-list و همه اجزاي آن را حذف نماييد.
9. فايل را ذخيره نماييد.
Building و Packaging
دراين مرحله در مورد firstcup Enterprise Application عمل Building و packaging را انجام مي دهيم. بدين ترتيب:
1. firstcup را در قسمت پروژه ها انتخاب نماييد.
2. کليک راست کنيد و گزينه Build Project را انتخاب کنيد.
Deploying
در مرحله قبل شما DukesBirthdayBean enterprise bean و firstcup web client را بصورت فايل firstcup.ear پکيج نموديم. حالا آن را روي سرور deploy مي کنيم. بدين صورت:
1. firstcup را در قسمت پروژه ها انتخاب کنيد.
2. کليک راست کرده و گزينه Deploy Project را انتخاب کنيد.
Running
1. Browser را اجرا نماييد و در قسمت آدرس آن URL زير را وارد کنيد.
mahyar_ev | 11:08 AM | Comment(s)(0)
ساخت صفحه greeting.jspJanuary 6, 2008 03:07 PM
ساخت يک صفحه خالي:
1. روي ماژول firstcup-war کليک راست نماييد.
2. از قسمت New گزينه JSP را انتخاب کنيد.
3. نام فايل JSP را greeting وارد کنيد.
4. Finish را کليک کنيد.
5. تگ head را به اين صورت تغيير دهيد:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Firstcup Greeting Page</title>
</head>
7. عبارت زير را حذف کنيد:
Declare نمودن Tag Library هاي JSF
همانگونه که مي دانيد تکنولوژي JavaServer Faces در واقع مجموعه اي از custom tag هاي jsp است که براي نمايش کامپوننت هاي واسط کاربري ، اعتبار سنجي و ساير موارد مربوطه به کار مي رود. Custom tag ها در tag library ها تعريف مي شوند. تکنولوژي JavaServer Faces در دو tag library تعريف مي شود:
• HTML Render Kit library که در آن همه کامپوننت هاي استاندارد واسط کاربري تعريف شده اند.
• Core tag library که تگ هاي مورد نياز براي مبدل ها (convertors) ، اعتبارسنج ها (Validators) و event listener ها و ساير توابع عملکردي اشياء تعريف مي شوند.
براي استفاده از اين تگ ها در صفحه بايد tag library را declare نماييد. در اين مثال بايد خطوط زير را در فايل greeting.jsp درست پس از تگ بسته شدن head قرار دهيد:
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core" %>
يک صفحه JSF بوسيله درختي از کامپوننت هاي واسط کاربري نمايش داده مي شود. هر صفحه JSP که از تکنولوژي JSF استفاده مي کند بايد داراي تگ view باشد. اين تگ در Core tag Library تعريف شده است و ريشه يا root درخت کامپوننت ها را مشخص مي نمايد. ساير تگ هاي JSF بايد درون تگ view تعريف شوند.
همچنين از آنجا که معمولا صفحات JSF شامل فرمي براي دريافت اطلاعات از کاربر است، معمولا بايد شامل تگ form نيز باشد. همه کامپوننت هاي موجود در يک فرم بايد درون تگ form قرار گيرند.
با مثال خود بحث را پي مي گيريم.
در ادامه declare نمودن tag library ها تگ هاي view و form را بدين صورت تعريف نماييد:
<h:form>
</h:form>
</f:view>
يکي از مهمترين و پر کاربرد ترين تگ هاي JSF تگ outputText است. greeting.jsp براي نمايش پيغام خوش آمدگويي، دستورالعمل ها، Lebel ها و سن Duke از آن استفاده مي کند. براي اين کار از پيغام هاي تعريف شده در resource bundle استفاده مي نمايد. همچنين تگ outputText اي که سن Duke را نشان مي دهد از متغير age موجود در DukesBDay bean استفاده مي کند.
در داخل تگ h:form اين کد ها را بنويسيد:
<h:outputText value="#{bundle.DukeIs} "/>
<h:outputText value="#{dukesBDay.age}"/>
<p><h:outputText value="#{bundle.Instructions}"/>
<p><h:outputText value="#{bundle.YourBD}"/>
يکي ديگر از تگ هاي پرکاربرد، تگ inputText است که يک فيلد متني براي دريافت ورودي از کاربر است. در اين مثال در صفحه greeting.jsp تاريخ تولد کاربر دريافت مي شود و مقدارش در متغير YourBD از DukesBDay Bean ريخته مي شود. بدين ترتيب:
پس از کدهاي نوشته شده از مراحل قبل، کدهاي زير را بنويسيد:
</h:inputText>
JSF شامل مجموعه از convertor ها و validator هاي استاندارد است که مي توان به کامپوننت نسبت داد. هدف از آنها اعتبار سنجي داده هاي ورودي و كنترل انطباق آنها با الگويي خاص است. در اينجا ما مي خواهيم نحوه ورود تاريخ توسط كاربر را مشخص نماييم و روي آن كنترل داشته باشيم.
به اين منظور چنين عمل کنيد:
1. تگ زير را در داخل تگ h:inputText اضافه نماييد:
value="#{dukesBDay.yourBD}"
converterMessage="#{bundle.DateError}">
<f:convertDateTime pattern="MM/dd/yyyy"/>
</h:inputText>
درست قبل از تگ message که در مرحله قبل ايجاد کرديد تگ زير را اضافه نماييد:
پياده سازي greeting.jsp هم تمام شد. در مطلب بعد، آخرين جزء Application كه صفحه response.jsp است را خواهيم ساخت.
mahyar_ev | 03:07 PM | Comment(s)(1)
ساخت DukesBDay Managed BeanJanuary 5, 2008 02:52 PM
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 | Comment(s)(0)
ساخت firstcup Web ClientJanuary 1, 2008 11:18 AM