1. สร้างฟอร์มชื่อ EditBlog ที่ *Forms.xml
<form name="EditBlog" type="single" target="editBlog" title="" default-map-name="resultMap" default-entity-name="NewBlog"> <auto-fields-entity entity-name="NewBlog" default-field-type="edit"/> <field name="statusId"> <drop-down allow-empty="false"> <entity-options description="${description}" entity-name="StatusItem" key-field-name="statusId"> <entity-constraint name="statusTypeId" value="CONTENT_STATUS"/> </entity-options> </drop-down> </field> <field name="editButton" title="Save" ><submit button-type="button"/></field> </form>
2. include form ชื่อ EditBlog เข้าไปในไฟล์ *Screens.xml
<screen name="EditBlog"> <section> <actions> <set field="newBlogId" from-field="parameters.newBlogId" global="true"/> <entity-one value-field="resultMap" entity-name="NewBlog" auto-field-map="true"></entity-one> </actions> <widgets> <decorator-screen name="CommonDecorator" location="component://myblog/widget/CommonScreens.xml"> <decorator-section name="body"> <container id="content"> <container style="post"> <container style="entry"> <include-form location="component://myblog/widget/MyBlogForms.xml" name="EditBlog"/> </container> </container> </container> </decorator-section> </decorator-screen> </widgets> </section> </screen>
3. กลับไปดูที่ไฟล์ *Forms.xml ฟอร์มชื่อ EditBlog มี target="editBlog"
<form name="EditBlog" type="single" target="editBlog" title="" default-map-name="resultMap" default-entity-name="NewBlog"> <auto-fields-entity entity-name="NewBlog" default-field-type="edit"/> <field name="statusId"> <drop-down allow-empty="false"> <entity-options description="${description}" entity-name="StatusItem" key-field-name="statusId"> <entity-constraint name="statusTypeId" value="CONTENT_STATUS"/> </entity-options> </drop-down> </field> <field name="editButton" title="Save" ><submit button-type="button"/></field> </form
4. ใน controller.xml ทำการสร้าง request-map และสั่งให้มีการการ invoke simple method ชื่อ editBlog ที่ services.xml
<request-map uri="editBlog"> <security https="true" auth="false"/> <event type="service" invoke="editBlog"/> <response name="success" type="request-redirect-noparam" value="home"></response> </request-map>
5. ใน services.xml มีการ invoke editBlog ในไฟล์ *Services.xml
<service name="editBlog" engine="simple" auth="false" location="component://myblog/script/com/org/toon/myblog/MyBlogServices.xml" invoke="editBlog"> <attribute name="newBlogId" mode="INOUT" type="String" optional="false"></attribute> <attribute name="newBlogTitle" mode="IN" type="String" optional="false"></attribute> <attribute name="newBlogBody" mode="IN" type="String" optional="false"></attribute> <attribute name="statusId" mode="IN" type="String" optional="true"></attribute> </service>
6. สร้าง service ชื่อ editBlog ในไฟล์ MyBlogServices.xml
<simple-method method-name="editBlog" short-description="edit a Blog"> <entity-one value-field="newData" entity-name="NewBlog" auto-field-map="true"></entity-one> <set-nonpk-fields value-field="newData" map="parameters"/> <store-value value-field="newData"/> </simple-metho
7. จบส่วนในการสร้างและเรียกใช้ Service ต่อไปจะทำการ controller ให้เรียก view ที่มีหน้า form ของการ edit new blog มาแสดงผล
8. เพิ่ม controller ชื่อ EditBlog ใน controller.xml ให้เรียก view ชื่อ CreateBlog มาแสดงผล เมื่อมีการเรียกเข้ามาที่ controller นี้
<request-map uri="EditBlog"><security https="true" auth="false"/> <response name="success" type="view" value="EditBlog"/> </request-map>
9. สร้าง view ชื่อ EditBlog เรียกฟอร์มการสร้างมาแสดงผล
<view-map name="EditBlog" type="screen" page="component://myblog/widget/MyBlogScreens.xml#EditBlog"/>
10. ทำการ ./startofbiz.sh ใหม่อีกครั้ง แล้วทดลองเแก้ไขข้อมูลลงใน entity