go to http://oracle.in.th

Saturday, July 31, 2010

JSF 2.0 Template

อารมณ์ดีมาจิบกาแฟดูสาวๆ ที่ดอยตุงสีลม กับบทความที่เป็นเนื้อหาเรื่องสุดท้ายแล้วครับกับ Template ทีนี้ก็มาเริ่มกันก่อนว่าทำไมต้องมี Template เคยไหมครับที่เขียนเว็บแล้วจะมีส่วนที่ซํ้ากันในทุกๆ หน้าที่เราเขียน แล้วพอแก้ทีก็ต้องไปไล่แก้กันทุกหน้าเลย น่าเบือนะครับ วันนี้เราจะมาเสนอทางเลือกเพือจัดการปัญหานี้กัน

โดยหลักการของ Template คือเราจะสร้าง html template (ซึ่งก็จะไว้สำหรับกำหนดโครงของหน้าเว็บเราว่าจะเป็นอย่างไร แล้วทีนี้เราก็ไปสร้าง aa.jsf, ab.jsf ที่เป็นส่วนที่เป็นเนื้อหาแต่ละหน้า แล้วเวลาที่ user request มาก็ให้มัน render รวมกันออกมาเป็นหน้าเว็บที่เราต้องการ

งงไหมครับ ถ้างงก็อย่าแปลกใจ พอเห็นตัวอย่างจะรู้ว่ามันง่ายกว่าที่คิดเยอะเลยครับ ทีนี้ก็ ลอง update svn เพือเอาไฟล์ลงมากันเลยซึ่งหลักๆจะมี 2 ไฟล์คือ templatenormal.xhtml, template.xhtml ที่นี้เรามาดูส่วนของ template กันก่อนคือ

ถ้าเปิด templatenormal.xhtml ดูจะเห็นว่าเป็น xhtml ธรรมดาๆเลย แต่จะมีในส่วนของ ui:insert เพิ่มเข้ามา
<ui:insert name="title" /> , <ui:insert name="content" />

ลองเปิด template.xhtml ดูบ้างก็จะเห็นว่าเป็น xhtml ปกติๆ อีกเหมือนกัน แต่จะมีในส่วนของ <ui:composition template="/layout/templatenormal.xhtml" > ที่เพิ่มเข้ามา อ้างไปถึง template file ที่เราต้องการนั่นเอง และอีกส่วนคือ <ui:define name="title" ....... <ui:define name="content" .......

สังเกตุไหมครับอันนึงบอกว่า ใส่ title,content อันนึงกำหนดส่วน insert, content ...

แล้วอย่างนี้ถ้าเรารัน template.jsf หร่ะ อะไรจะเกิดขึ้น ก็จะได้ หน้าจอแบบที่สร้างใน templatenormal แต่มี data บางส่วนมาจาก template

เนี่ยแหละครับสมมุติวันดีคืนดีเราเปลี่ยน template หร่ะ ก็ไปแก้แค่ทีเดียว ทั้งโปรเจคเราก็เปลี่ยนตามแล้ว เป็นไงครับ JSF ง่ายดีไหม? ^ ^

หมดนี้คงเป็นตัวอย่างที่เป็นรูปเป็นร่างหน่อยละครับ แต่ยังไม่ชัวร์ว่าจะให้มีในส่วนของ db หรือเปล่าก็คงแล้วแต่ความสะดวก(กัวว่าถ้าเพิ่มมากแล้วจะทำให้รันไม่ได้เพราะติดนู่นติดนี่ แล้วจะพาลไม่ยอมหัดกัน เลยอยากแยกส่วนเนื้อหาให้ชัดเจนไปก่อนน่ะครับ)

copyright 2010 @nuboat in wonderland
ข้อเขียนนี้ช่วยฉัน:  

No comments:

Post a Comment