วันพุธที่ 7 มกราคม พ.ศ. 2558

JSF Life Cycle (วัฏจักรชีวิตของ JSF)

JSF Life Cycle (วัฏจักรชีวิตของ JSF)

               ต้องขอเกริ่นนำเอาไว้ก่อนเลยว่าการอธิบายสิ่งเหล่านี้อาจจะไม่ทำให้มองเห็นภาพซักเท่าไร แต่จะเป็นการให้ข้อมูลเอาไว้ก่อน  ซึ่งผมจะอธิบายส่วนเหล่านี้เอาไว้ในบทถัดๆไป พร้อมกับการเขียน code ซึ่งจะทำให้เราเข้าใจในส่วนนี้มากขึ้น

JSF application life cycle ประกอบด้วย 6 ส่วน

1. Restore view phase
2. Apply request values phase
3. Process validations phase
4. Update model value phase
5. Invoke application phase
6. render response phase



Phase 1 : Restore view

               JSF จะเริ่ม Restore View Phase ในทันทีที่มีการกด link หรือ button
จากนั้น JSF จะรับ request  ซึ่งใน Phase นี้ JSF จะทำการสร้าง view ซึ่งจะผูกตัวจัดการ event (event handler) และ validators กับ UI Components และทำการ save ลงใน view ซึ่งอยู่ใน FaceContext instance

Phase 2 : Apply request values

               หลังจากที่ component tree ถูกสร้างหรือถูกเก็บใน view   component tree แต่ละตัวจะทำการแปลงค่าเพื่อเก็บเป็น request parameter
               ถ้าหากเกิด error ในการแปลงค่า จะมี error message ที่ถูกสร้างโดยอัตโนมัติเก็บไว้ใน FacesContext ในรูปแบบ queue ซึ่ง error message เหล่านี้จะถูกแสดงผลใน render response phase

Phase 3 : Process validation

               ใน phase นี้  จะเป็น phase ที่ทำการตรวจสอบข้อมูลจากตัว validator ถ้าการ validate ผิดจะทำมี error message ออกมาและจะทำการกระโดดข้ามไปที่ render reponse phase ทันที

Phase 4 : Update model values

               หลังจากที่ JSF ได้ทำการตรวจสอบข้อมูลใน phase validation เรียบร้อยแล้ว JSF จะทำการ update ค่าต่างๆลงที่ bean properties ซึ่งก็คือ field ของ java bean ที่ผูกกับ input component

Phase 5 : Invoke application

               ใน phase นี้ JSF จะจัดการ event ในทุกๆ application-level  เช่น การกด submit form หรือการ link ไปที่หน้าอื่นๆ

Phase 6 : Render response

               ใน phase นี้ JSF จะทำการแสดงผลหน้าเพจ   หลังจากที่ข้อมูลต่างๆถูกแสดงผลแล้ว จะมีการเก็บ reponse state เอาไว้เพื่อใช้ใน request ครั้งต่อๆไป

จบเรื่อง JSF Life Cycle กันแล้วนะครับ ซึ่งผมจะอธิบายส่วนเหล่านี้พร้อมกับการเขียน code ในส่วนต่อๆไปนะครับ  ^ ^




https://www.facebook.com/coachingcode


1 ความคิดเห็น: