Grails 1.1 Web层 - Models(模型)与Views(视图) - 选择View

在之前的2个示例中,都没有指定哪个 view 用于渲染。因此,Grails怎么知道哪个 view 被选取?

答案在于规约。

对于action:class BookController { def show = { [ book : Book.get( params.id ) ] } }Grails 会自动查找位于 grails-app/views/book/show.gspview (事实上, Grails 会首先查找JSP,因为,Grails同样可以与 JSP一起使用).

假如,你想渲染其他view, render 方法在这里就能帮助你:def show = { def map = [ book : Book.get( params.id ) ] render(view:"display", model:map) }这种情况下,Grails将会尝试渲染位于 grails-app/views/book/display.gsp的view。

注意,Grails自动描述位于book文件夹中的 grails-app/views路径位置的视图。

很方便,但是,如果你拥有某些共享的视图需要存取,作为替代使用:def show = { def map = [ book : Book.get( params.id ) ] render(view:"/shared/display", model:map) }在这种情况下,Grails将尝试渲染grails-app/views/shared/display.gsp位置上的视图。