December 26, 2016

JSF Introduction

တကယ်ဆိုရင် JSF ကို မရေးချင်သေးပါဘူး။ CDI ကို ရေးရင်း Scope တွေလဲ ရောက်လာရော JSF ကို မပြောပဲနဲ့ ရေးမရတော့ဘူး။ ဒါ့ကြောင့် JSF ကို Backing Beans တွေကို ရောက်အောင် ရေးပါမယ်။ ဒါပြီးမှ CDI ဘက်ကို ပြန်သွားပါမယ်။ ပြီးတော့မှ JSF ဘက်ကို ပြန်ဆက်ပါမယ်။ ဒါပြီးရင် JSF နဲ့ EJB ကို အပြိုင်ရေးမယ်။ ပြီးရင် JPA နဲ့ တွဲရေးပါမယ်။

JSF, JPA, CDI, EJB ပြီးမှ တစ်ခြား Java EE Feature တွေကို ဆက်ရေးပါမယ်။

Overview About JSF


JSF ဆိုတာ Java Server Face ရဲ့အတိုကောက်နာမည်ဖြစ်ပြီး MVC Design Pattern ကို အခြေခံထားတဲ့ Framework တစ်ခုဖြစ်ပါတယ်။ Presentation Layer အတွက် Java EE ရဲ့ Standard API ဖြစ်ပါတယ်။ ဒါ့ကြောင့် Java EE ကို သုံးပြီးရေးမယ်ဆိုရင် Presentation Layer အတွက် တစ်ခုထဲသော API လဲ ဖြစ်ပါတယ်။

MVC Design Pattern ဆိုတာ Application တွေမှာ Model, View နဲ့ Controller တွေကို အသုံးပြုပြီး Model နဲ့ View တို့အကြားမှာရှိတဲ့ Coupling ကို ဆောင်ရွက်ပေးနိုင်တဲ့ Design Pattern တစ်ခုဖြစ်ပါတယ်။

View ဆိုတာက End User တွေနဲ့ တိုက်ရိုက် ဆက်သွယ်နိုင်သော Component တွေဖြစ်ပြီး၊ Model ထဲမှာရှိတဲ့ Information တွေကို User ကို ပြပေးနိုင်တယ်။ ပြီးတော့ User ကနေ ပေးလိုက်တဲ့ Information တွေကို လက်ခံယူနိုင်တယ်။ ပြီးတော့ User ဆီကနေလာတဲ့ Action တွေကို သိရှိနိင်ပါတယ်။ နောက်ပြီး View ရဲ့ အလုပ်ဟာ Model မှာ ပါလာတဲ့ Information တွေကို ဘယ်နေရာမှာ ဘယ်လိုပြမလဲ ဆိုတာကို ဖေါ်ပြရုံပါပဲ။

Controller တွေကတော့ View ကနေရောက်လာတဲ့ User Action တွေအလိုက် ဘယ် Model ကို ခေါ်ပြီး Update လုပ်မယ်၊ ဒါမှမဟုတ် Model ထဲကနေ Data တွေကို ရှာဖွေပြီး ဘယ် View ကို ပြန်ပြပေးမယ်ဆိုတာကို Handle လုပ်ပေးရုံပါပဲ။

Model ကတော့ View အတွက် Data တွေကို Support လုပ်ပေးမယ်။ ပြီးတော့ Business Logic တွေကို လုပ်ပေးရပါမယ်။ ဤကဲ့သို့ Model, View, Controller တို့ကို အသုံးပြုခြင်းအားဖြင့် View နဲ့ Model တို့ကြားမှာရှိတဲ့ Coupling တွေကို လျော့ချပေးနိုင်ပါတယ်။

အထက်မှာ ဖေါ်ပြထားတဲ့ MVC ဆိုတာကတော့ လူအပြောများတဲ့ MVC Pattern ဖြစ်ပါတယ်။ MVC Type 1 လို့လဲ ခေါ်ပါတယ်။ Struts 1 တုန်းကတော့ MVC Type 1 ကို အခြေခံပြီးရေးသားခဲ့ပါတယ်။

 JSF က အသုံးပြုထားတာကတော့ Front End Controller ကို အသုံးပြုတဲ့ MVC Type 2 ကို အသုံးပြုထားတာပါ။ Controller အနေနဲ့ တစ်ခုကို အသုံးပြုပါတယ်။ လာသမျှ Request တွေကို Front End Controller ထဲကို ဖြတ်ပြီး Request အလိုက် သက်ဆိုင်ရာ Model တွေကို ခေါ်ပြီး သင့်တော်တဲ့ View တွေကို ပြန်ပို့ပေးတဲ့ ပုံစံပါ။
JSF မှာက Front End Controller အနေနဲ့ Framework ကနေ ရေးသားထာတဲ့ FacesServlet ကို အသုံးပြုပါတယ်။ ဒါ့ကြောင့် JSF ကို အသုံးပြုမယ်ဆိုရင် Controller အပိုင်းဟာ ကျွန်တော်တို့ ရေးစရာမလိုတဲ့ အပိုင်းဖြစ်ပါတယ်။

View တွေအနေနဲ့ကတော့ PDL တွေအရ JSP တွေ အသုံးပြုနိုင်သလို XHTML တွေ၊ XML ဖိုင်တို့ကို အသုံးပြုနိုင်ပါတယ်။ JSF 2.2 အရောက်မှာ Facelets Technology ကို အသုံးပြုရန် တိုက်တွန်းထားပြီး XHTML တွေနဲ့ ရေးသားရန် အဆိုပြုထားပါတယ်။ ဒါ့ကြောင့် ကျွန်တော်တို့ နမူနာတွေထဲမှာလဲ Facelets ကို အသုံးပြုပြီး ရေးသား သွားပါမယ်။

တဖန် JSF Framework ကနေ View တွေကို ရေးသားရာမှာ အလွယ်တကူ အသုံးပြုနိုင်အောင် Standard Component Library တွေကိုလဲ ပံပိုးပေးထားပါတယ်။ HTML ရဲ့ Form Elements တွေ Data Table တွေ အစရှိသည်တို့ကို အလွယ်တကူ ရေးသားနိုင်အောင် Component အနေနဲ့ ပံ့ပိုးထားပါတယ်။ တဖန် မိမိကိုယ်တိုင်လဲ​အလွယ်တကူ Custom Component တွေကို ရေးသားနိုင်အောင်လဲ စီစဉ်ထားပါတယ်။

Model နေရာမှာ တာဝန်ကျတာကတော့ JSF ရဲ့ Backing Beans တွေ ဖြစ်ပါတယ်။ Backing Bean တွေဟာ လိုအပ်တဲ့ Annotation တွေကို ရေးသားထားတဲ့ POJO တွေသာဖြစ်ပါတယ်။ Backing Beans တွေဟာ Model နေရာမှာ တာဝန်ရှိတဲ့အတွက် View အတွက် Data တွေကို Support လုပ်ပေးနိုင်ပါတယ်။ တဖန် View ကနေ ပေးပို့လိုက်တဲ့ Data တွေကိုလဲ လက်ခံယူနိုင်ပါတယ်။ Business Logic တွေကိုတော့ Action Method တွေနဲ့ အကောင်အထည်ဖေါ် ဆောင်ရွက်ပေးပါတယ်။

ဒါ့ကြောင့် Backing Beans တွေမှာ ဘာတွေရေးနိုင်လဲလို့မေးလာရင် View နဲ့ Interact လုပ်မည့် Properties တွေ ရေးသားနိုင်ပါမယ်။ ပြီးတော့ Business Logic တွေကို Delegate လုပ်ပြီး ရေးသားဖို့ EJB တို့ အခြား Service Object တွေကို ရေးသားနိုင်မယ်။ ပြီးတော့ User Action တွေအလိုက် Business Logic တွေကို ဆောင်ရွက်ပေးမည့် Action Method တွေ Action Listener Method တွေကို ရေးသားနိုင်ပါမယ်။


Articles

  1. How To Write JSF Application 
  2. Backing Beans
  3. Data Binding with EL
  4. Scopes of Beans
  5. Building Views
  6. Convertors
  7. Validations
  8. Ajax Invocations
  9. Writing Templates
  10. Web Security

No comments:

Post a Comment