วันศุกร์ที่ 4 มิถุนายน พ.ศ. 2553

การนำเอา FreeMarker Template Engine มาใช้ใน OFBiz

FreeMarker เป็น Template Engine ที่ใช้แนวคิด MVC เพื่อแยกส่วนแสดงผลออกจากส่วน source ของ java สามารถศึกษารายละเอียดเพิ่มเติมได้ที่ http://freemarker.sourceforge.net/

ในบทความจะแสดงตัวอย่างในการนำเอา freemarker มาใช้งานใน OFBiz project

โดยปกติแล้วหน้าเพจมักจะมีส่วนที่ซ้ำซ้อนกันที่ต้องแสดงทุกหน้า อย่างเช่น เมนู, วันที่ ฯลฯ เราสามารถ assigned ค่าให้กับค่าตัวแปรที่มีการแสดงผลซ้ำๆ กัน แล้วเก็บไว้ที่ไฟล์อื่น เพื่อความง่ายในการแก้ไขหากต้องมีการเปลี่ยนค่า ไม่ต้องเปลี่ยนทุกหน้า แต่เปลี่ยนที่ไฟล์ที่ assigned ค่าไว้แค่ไฟล์เดียว

หรืออีกประโยชน์หนึ่ง เพื่อให้หน้าเพจมีการเขียนโค้ดที่สั้นลง เนื่องจากโค้ดที่ซับซ้อนถูกกำหนดไว้ที่ไฟล์อื่น สามารถลดความยากในการอ่านโค้ดในเพจนั้นได้

ทดลองทำตามขั้นตอนดังนี้
1. สร้างไฟล์ .ftl ใหม่ใน webapp ของโปรเจ็ค ชื่อ configtemplate.ftl
2. เพิ่มโค้ดใน configtemplate.ftl ดังนี้









อธิบายโค้ด

<#macro category> สร้าง macro โดยกำหนดชื่อ macro ว่า category

3. ในหน้า testpage.ftl ทำการเรียก macro ชื่อ category ดังนี้
<#import "component://testtest/webapp/testtest/configtemplate.ftl" as myconf>
<@myconf.category />

อธิบายโค้ด
<#import "component://testtest/webapp/testtest/configtemplate.ftl" as myconf> ทำการ import ไฟล์ที่กำหนด macro ไว้ แล้วตั้ง alias ว่า myconf
<@myconf.category /> เรียกใช้ macro ชื่อ category ผ่าน alias myconf

4. ทดสอบเรียกหน้าเพจมาแสดงผล


ทดลองทำการ assigned string ลงในไฟล์ ดังนี้
1. ในหน้า configtemplate.ftl เพิ่มโค้ดดังนี้
<#assign addtext="test add string in template">
2. ในหน้า testpage.ftl ทำการเรียกใช้ตัวแปรที่ assigned ดังนี้
${myconf.addtext}
3. ทดสอบเรียกหน้าเพจมาแสดงผล


FreeMarker ยังสามารถสร้างและแสดง template ได้อีกหลายวิธี ให้ทดลองอ่าน Online Documentation ได้ที่เว็บไซต์ http://freemarker.sourceforge.net/docs/index.html

ไม่มีความคิดเห็น:

แสดงความคิดเห็น