Friday, April 13, 2007

มีการสนับสนุน Command Object ใน svn head แล้ว

ไม่กี่วันที่ผ่านมา Jeff Brown ส่งโค้ดที่สนับสนุนการใช้ command object เพื่อเป็น argument ของ action ของ controller เข้า svn head แล้ว
วิธีการสร้างและใช้ command object คราว ๆ เป็นแบบนี้ครับ

สร้างคลาสของ command object ใน src/groovy โดยใช้รูปแบบของ Groovy คลาส ธรรมดา ในกรณีนี้คือไม่ได้ใช้ระบบ convention ตัว command object สามารถมี constraint เพื่อใช้ validate และ ตรวจสอบ error ได้ผ่านทาง property "errors" และ "hasErrors()" ในการรับค่าจาก web request นั้น Grails จะส่งค่าจาก request parameters (params) เข้าสู่ property ของ command object โดยดูจากชื่อ parameter

ตัวอย่าง
class MyCommandObject {
String lastName
String firstName
static constraints = {
firstName(maxSize:10)
}
}

class MyController {
def someAction = { MyCommandObject mco ->
if(mco.hasErrors()) {
// do some stuff...
} else {
// do some other stuff
}
}
}


การเพิ่มการสนับสนุน command object pattern จะทำให้การรับข้อมูลจาก form ทำได้งานขึ้นมากเลยทีเดียวครับ

ที่มา grails-dev

No comments: