วิธีใช้อย่างย่อ
สร้างโปรเจ็ค Grails
เมื่อทำการติดตั้ง Grails แล้ว คุณสามารถใช้ target ที่เตรียมไว้ให้สำหรับสร้างโปรเจ็คใหม่ได้ดังนี้:
grails create-app
ตัว target จะถามชื่อโปรเจ็คที่ต้องการจะสร้าง และจะได้โครงสร้างของโปรเจ็คตามที่เห็นด้านล่าง:
%PROJECT_HOME%
+ grails-app
+ conf ---> ตำแหน่งสำหรับเก็บ artifacts เพื่อการปรับแต่ง เช่น data sources
+ controllers ---> ตำแหน่งสำหรับเก็บ controller artifacts
+ domain ---> ตำแหน่งสำหรับเก็บ domain classes
+ i18n ---> ตำแหน่งสำหรับเก็บไฟล์ข้อความเพื่อการทำ i18n
+ services ---> ตำแหน่งสำหรับเก็บ services
+ taglib ---> ตำแหน่งสำหรับเก็บ tag libraries
+ views ---> ตำแหน่งสำหรับเก็บ views
+ layouts ---> ตำแหน่งสำหรับเก็บ layouts
+ lib
+ spring ---> เก็บไฟล์ปรับแต่งสำหรับ spring (ไม่บังคับ)
+ hibernate ---> เก็บไฟล์ปรับแต่งสำหรับ hibernate (ไม่บังคับ)
+ war
+ WEB-INF
ปรับแต่งแหล่งข้อมูล (Data Source) (ไม่บังคับ)
ตัว target "create-app" จะสร้างกลุ่มไฟล์ (เรียกกันว่า artifacts) แหล่งข้อมูลสำหรับ Grails ไว้ให้ในไดเร็กทอรี่ "<..>/grails-app/conf" ซึ่งจะตั้งค่าโดยปริยายไว้เป็น HSQLDB แบบ in-memory (เหมาะสำหรับทดสอบ แต่อาจจะไม่มีประโยชน์นักในการนำไปใช้จริง) ดังนั้นขั้นตอนนี้จึงไม่บังคับว่าต้องทำตาม:
class ApplicationDataSource {
@Property String url = "jdbc:hsqldb:mem:testDB"
@Property String driverClassName = "org.hsqldb.jdbcDriver"
@Property String username = "sa"
@Property String password = ""
}
การปรับแต่งแหล่งข้อมูลสามารถทำได้ง่าย ๆ ด้วยการแก้ไขค่าโดยระบุฐานข้อมูลและไดรเวอร์ที่ต้องการจากนั้นก็นำไฟล์ jar ของไดรเวอร์ไปวางไว้ในไดเร็กทอรี่ <..>/lib
สร้างคลาสโดเมน
ต้องมั่นใจก่อนว่าคุณอยู่ในไดเร็กทอรี่ของโปรเจ็ค (ตัวอย่างเช่น "my-project") โดยพิมพ์ "cd my-project" แล้วรัน target "grails create-domain-class" จากนั้นป้อนชื่อของคลาสโดเมนที่ต้องการ คลาสโดเมนจะเป็น artifact แบบ persistent และโดยปกติ properties ทั้งหมดของคลาสนี้จะเก็บลงฐานข้อมูล (สามารถดูรายละเอียดเพิ่มเติมจากส่วนของ GORM (Grails Object Relational Mapping) ):
class Book {
@Property Long id
@Property Long version
@Property String title
@Property String author
}
เมื่อถึงจุดนี้คุณอาจจะต้องการสร้างข้อมูลทดสอบ ตำแหน่งในการวางที่เหมาะสำหรับข้อมูลทดสอบจะอยู่ที่ closure "init" ของคลาสตัวเริ่มแอพพลิเคชั่น (application bootstrap) ของ Grails ซึ่งสามารถพบได้ใน "<..>/grails-app/conf":
new Book(author:"Stephen King",title:"The Shining").save() new Book(author:"James Patterson",title:"Along Came a Spider").save()
สร้างตัวควบคุมและตัวแสดง
ตัวควบคุมหรือ controller เป็นศูนย์กลางของ Grails แอพพลิเคชั่น เราใช้ตัวควบคุมจัดการการร้องขอ (web request) และ URL ของการร้องขอจะจับคู่ไปยังคลาสที่เป็นตัวควบคุมและ closure ที่อยู่ในคลาสนั้น ๆ์
รัน target "grails generate-all" และป้อนชื่อคลาสโดเมนที่ต้องการ ในตัวอย่างเราพิมพ์ "book" เพื่อให้ Grails สร้างตัวควบคุมและตัวแสดงผลอีกจำนวนหนึ่งสำหรับกระบวนการ CRUD ซึ่งใช้ การขึ้นโครง.
เริ่ม Grails
เมื่อจะเริ่มรันตัวโปรเจ็คที่เป็น Grails แอพพลิเคชั่น ให้รัน target ต่อไปนี้
grails run-app
คำสั่งนี้จะเป็นการเริ่มโปรแกรม Jetty servlet engine ให้รันบนพอร์ต 8080 หากต้องการเปลี่ยนไปใช้พอร์ตอื่นเช่น 9090 ให้ใช้คำสั่ง grails -Dserver.port=9090 run-app จากนั้นเราจะสามารถเข้าไปยังหน้าสำหรับแสดงรายการหนังสือได้โดยเปิดบราวเซอร์แล้วพิมพ์:
http://localhost:8080/my-project/book/list
หรือถ้า closure "list" เป็น action โดยปริยายของ BookController แล้วคุณก็สามารถพิมพ์แค่:
http://localhost:8080/my-project/book