ครับ หลังจากที่เราติดตั้ง ออฟบิซกันไปแเล้ว แล้ว ผมก็เป็นคนเริ่มต้นนำเสนอในบล็อก แต่สุดท้าย ผมก็มาสงสัย ในเมื่อผมไม่ใ่องค๋กรซะหน่อย แล้ว ผมจะศึกษาไปเพื่ออะไรหว่า คิดไปคิดมาก็เสียเวลา แต่พอมานึกว่า อื้ม อย่างน้อยก็คงมีคนมาอ่านแล้วไปใช้ได้บ้าง คิดซะว่าทำเพื่อคนอื่นแล้วกัน พอคิดได้งี้ ก็ทานไข่เพิ่มอีก 5 ฟอง โหฟิต เขียนได้อีกเป็นโหล เอาเป็นว่าไหน ๆ ก็ไหน ๆ แล้ว เขียนให้จบไปเป็นชวง ๆ ไปแล้วกัน
เริ่มกันตั้งแต่พื้ันฐานเลยนะครับ เพราะคนเข้ามาอ่านบางคนอ่านเพิ่งเริ่มต้นงานนี้เลยศึกษาเอาแบบเริ่มต้นเลย แล้วกัน เอ้า เริ่มเลยครับ กับ ออฟบิต ขั้นต้น
เริ่มกันตั้งแต่พื้ันฐานเลยนะครับ เพราะคนเข้ามาอ่านบางคนอ่านเพิ่งเริ่มต้นงานนี้เลยศึกษาเอาแบบเริ่มต้นเลย แล้วกัน เอ้า เริ่มเลยครับ กับ ออฟบิต ขั้นต้น
application ที่เราสร้างขึ้นเอง จะเก็บไว้ใน ofbiz_home/hot-deploy/ ครับจากโครงสร้างเว็บอย่างง่าย จะเห็นตามรูปนะครับ
ofbiz-component.xml คือ config เกี่ยวกับ web application ของเรา
CODE <ofbiz-component name=”web”
xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
xsi:noNamespaceSchemaLocation=”http://ofbiz.apache.org/dtds/ofbiz-component.xsd”>
<!– define resource loaders; most common is to use the component resource loader –>
<resource-loader name=”main” type=”component”/>
<!– web applications; will be mounted when using the embedded Jetty container –>
<webapp name=”web”
title=”Sample Web”
server=”default-server”
location=”webapp/web”
mount-point=”/web”/>
</ofbiz-component>
อธิบาย ได้ว่า
ofbiz-component หรือ web application ของเรา ชื่อ web
location คือ ที่ชี้มาจาก hot-deploy/web/webapp/web
web.xml เป็นที่ config description ทั่วๆ ไป โดยปกติสามารถ copy มาจาก web application ตัวอื่นๆ ได้ และมาแก้ไขรายละเอียดนิดหน่อย
controller.xml เป็นเหมือน controller แบบทั่วๆไป เมื่อเราสร้างหน้า page ขึ้นมา เราต้องมากำหนดใน controller.xml เพื่อให้สามารถเรียกหน้านั้นขึ้นมาได้ด้วย ดังตัวอย่างบางส่วนใน controller.xml ดังต่อไปนี้
CODE <!– Request Mappings –>
<request-map uri=”main”>
<security https=”false” auth=”false”/>
<response name=”success” type=”view” value=”main”/>
</request-map>
<request-map uri=”page1″>
<security https=”false” auth=”false”/>
<response name=”success” type=”view” value=”page1″/>
</request-map>
<request-map uri=”page2″>
<security https=”false” auth=”false”/>
<response name=”success” type=”view” value=”page2″/>
</request-map>
<request-map uri=”error”>
<security https=”false” auth=”false”/>
<response name=”success” type=”view” value=”error”/>
</request-map> <!– View Mappings –>
<view-map name=”error” page=”/jsp/error.jsp”/>
<view-map name=”main” page=”/jsp/main.jsp”/>
<view-map name=”page1″ page=”/jsp/page1.jsp”/>
<view-map name=”page2″ page=”/jsp/page2.jsp”/>
<!– end of view mappings –>
เวลา เรา create หน้าขึ้นมาใหม่ จำเป็นต้องนำมา add ใน controller.xml ทั้งในส่วนที่เป็น request-mapping และ view-mapping หากเรา add เฉพาะใน view mapping อย่างเดียว เวลาเข้าถึงหน้าดังกล่าวใน browser จะได้หน้าว่างเปล่าที่ไม่ error แต่ไม่แสดงข้อมูลอะไรเลย แต่หากเรา add เฉพาะส่วนที่เป็น request mapping เวลาเราเข้าถึงหน้าดังกล่าว มันจะบอกว่าหาหน้านี้ไม่เจอ เพราะเรายังไม่ได้สั่ง view-map กับหน้านี้นั่นเอง โดยจะขึ้น error แบบนี้
CODE The requested resource (/web/error) is not available
หมาย ความว่า หาหน้า error ไม่เจอ แต่ในตัวอย่างสามารถทำงานได้ครับเพราะได้กำหนดทั้งในส่วน request mapping และ view mapping เรียบร้อยแล้ว ตั้งชือ view-map ของหน้า error.jsp ให้เป็น error เรียบร้อยแล้ว เวลาเรียกไปยังหน้านี้ ก็สามารถใช้ url -> https://localhost:8443/web/control/error ได้
ขอบคุณ www.narisa.comที่ทำให้ข้อมูลนี้สมบูรณ์ขึ้น
xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
xsi:noNamespaceSchemaLocation=”http://ofbiz.apache.org/dtds/ofbiz-component.xsd”>
<!– define resource loaders; most common is to use the component resource loader –>
<resource-loader name=”main” type=”component”/>
<!– web applications; will be mounted when using the embedded Jetty container –>
<webapp name=”web”
title=”Sample Web”
server=”default-server”
location=”webapp/web”
mount-point=”/web”/>
</ofbiz-component>
อธิบาย ได้ว่า
ofbiz-component หรือ web application ของเรา ชื่อ web
location คือ ที่ชี้มาจาก hot-deploy/web/webapp/web
web.xml เป็นที่ config description ทั่วๆ ไป โดยปกติสามารถ copy มาจาก web application ตัวอื่นๆ ได้ และมาแก้ไขรายละเอียดนิดหน่อย
controller.xml เป็นเหมือน controller แบบทั่วๆไป เมื่อเราสร้างหน้า page ขึ้นมา เราต้องมากำหนดใน controller.xml เพื่อให้สามารถเรียกหน้านั้นขึ้นมาได้ด้วย ดังตัวอย่างบางส่วนใน controller.xml ดังต่อไปนี้
CODE <!– Request Mappings –>
<request-map uri=”main”>
<security https=”false” auth=”false”/>
<response name=”success” type=”view” value=”main”/>
</request-map>
<request-map uri=”page1″>
<security https=”false” auth=”false”/>
<response name=”success” type=”view” value=”page1″/>
</request-map>
<request-map uri=”page2″>
<security https=”false” auth=”false”/>
<response name=”success” type=”view” value=”page2″/>
</request-map>
<request-map uri=”error”>
<security https=”false” auth=”false”/>
<response name=”success” type=”view” value=”error”/>
</request-map> <!– View Mappings –>
<view-map name=”error” page=”/jsp/error.jsp”/>
<view-map name=”main” page=”/jsp/main.jsp”/>
<view-map name=”page1″ page=”/jsp/page1.jsp”/>
<view-map name=”page2″ page=”/jsp/page2.jsp”/>
<!– end of view mappings –>
เวลา เรา create หน้าขึ้นมาใหม่ จำเป็นต้องนำมา add ใน controller.xml ทั้งในส่วนที่เป็น request-mapping และ view-mapping หากเรา add เฉพาะใน view mapping อย่างเดียว เวลาเข้าถึงหน้าดังกล่าวใน browser จะได้หน้าว่างเปล่าที่ไม่ error แต่ไม่แสดงข้อมูลอะไรเลย แต่หากเรา add เฉพาะส่วนที่เป็น request mapping เวลาเราเข้าถึงหน้าดังกล่าว มันจะบอกว่าหาหน้านี้ไม่เจอ เพราะเรายังไม่ได้สั่ง view-map กับหน้านี้นั่นเอง โดยจะขึ้น error แบบนี้
CODE The requested resource (/web/error) is not available
หมาย ความว่า หาหน้า error ไม่เจอ แต่ในตัวอย่างสามารถทำงานได้ครับเพราะได้กำหนดทั้งในส่วน request mapping และ view mapping เรียบร้อยแล้ว ตั้งชือ view-map ของหน้า error.jsp ให้เป็น error เรียบร้อยแล้ว เวลาเรียกไปยังหน้านี้ ก็สามารถใช้ url -> https://localhost:8443/web/control/error ได้
ขอบคุณ www.narisa.comที่ทำให้ข้อมูลนี้สมบูรณ์ขึ้น