我刚刚开始使用grails,我遇到了问题。
我有一个项目主页的“控制器”和“视图”(主页没有模型)
我调用了视图“index.gsp”,并将其放在目录views / home
中然而,无论我做什么,grails都试图读取页面“home.gsp”(然后是home.jsp),尽管我已经在渲染调用中使用“template”属性明确指定了索引。 / p>
class HomeController {
String someparameter = "xyzzy"
def index = {
render(view:"home", template:"index") // I also tried "index.gsp" and "home/index.gsp"
}
}
我认为我可能正在使用“模板”属性错误,因为我只在示例中看到它用于无视图模板渲染。但是文档没有给出这样的限制。
有没有办法明确指定模板的名称?我只是屈服了并将其重命名为“home.gsp”,但我想了解出了什么问题。
(此应用程序中的主页没有“模型”.Grails将使用控制器具有模型。在此示例中,您可以访问gsp模板中的“someparameter”$ {someparameter}。)
答案 0 :(得分:8)
我认为你可能会误解Grails template是什么。将模板视为可重用片段。模板是一个GSP,它以_menu.gsp
这样的下划线开头,您通常会在另一个GSP中使用<g:render template="menu"/>
这样的标记进行渲染。
同时渲染视图和模板没有意义。它们在这一点上是相互排斥的。
您是否希望实施布局?如果是,see the docs或the grails.org explaination.
根据您的观点,您的视图会在视图的<meta name="layout" content="main">
标记中显示<head/>
标记,这表示该视图将与位于{的main
版块一起网格化{1}}