พอดีไปอ่าน blog ที่นี่ อธิบายถึงการเข้าถึง gsp file โดยไม่ต้องผ่าน Controller
เป็นที่รู้กันว่า Controller class ใน Grails application นั้นมีหน้าที่รับ request, ประมวลผลตาม request และทำการ render view ดังนั้นการเข้าถึงหรือ access view หรือ gsp file นั้นจะผ่าน controller class เสมอ แต่โดยปกติเราสามารถเข้าถึง gsp file ได้โดยตรงดังนี้ [ ใน /grails-app/views จะมี folder without_controller ด้วย ]
http://localhost:8080/test_app/without_controller/hello.gsp
แต่หลายๆ คนเห็น url ลงท้ายด้วย gsp คงไม่ชอบใจเท่าไร ดังนั้นถ้าเปลี่ยนเป็น
http://localhost:8080/test_app/without_controller/hello
จะชอบใจขึ้นบ้างไหม ???
ก่อนจะเข้าถึงในลักษณะข้างต้นได้ จำเป็นจะต้องทำการปรับแต่ง file /grails-app/conf/UrlMappings.groovy ดังนี้
...
static mappings = {
...
"/without_controller/hello"(view:"hello")
...
}
...
เท่านี้ก็สามารถเข้าถึง gsp file โดยไม่ผ่าน controller class ได้แล้ว
แต่ข้อจำกัดของวิธีนี้คือ จะไม่สามารถส่ง object ของ domain class เข้ามาแสดงที่ gsp file นี้ได้ ส่วนการทำงานอื่นๆ สามารถทำงานได้เป้นปกติ เช่น tag lib, scriptlet ต่างๆ
ผมคิดว่าสำหรับคนที่เคยใช้ Struts Framework และ SpringMVC น่าจะพอเข้าใจใน concept ลักษณะนี้ครับ
Leave a Reply