我问了这个问题here我有一个新的grails应用程序,索引页面由几个部分模板组成。我的每个部分模板需要从不同的控制器加载数据,建议的解决方案是使用标签 - 我已经尝试了这一点,但看不到任何事情发生,并且在搜索网络后,我无法找到任何完全正常运行的示例。< / p>
这是我的部分模板_newsFeed.gsp:
<div id="news_feed">
<g:include controller="news" action="latestsNews" /></div>
和我的控制器NewsController.groovy:
class NewsController {
def latestsNews = {
println "in controller"
[news: "News Headline!"]
}
在上面的例子中,我只是试图确认控制器正在被调用(这就是println存在的原因) - 但我从来没有得到任何东西。
有人能指出我的工作实例或解释我是否遗漏了什么?
由于
答案 0 :(得分:2)
我没有看到您的代码有任何重大错误。你在NewsController中缺少一个右大括号,但我怀疑这只是一个错字。我刚刚测试了以下内容:
class HomeController {
def showMessage = {
println "Showing message"
[message: 'this is a message']
}
}
showMessage.gsp中只有$ {message}。然后在我的index.gsp
中<g:include controller="home" action="showMessage" />
我得到了正确的回复。您视图中的其他所有内容是否都正确呈现,您确定包含include的页面实际上是在调用/呈现吗?
答案 1 :(得分:-1)
调用http://localhost:8080/myapp/home/showMessage时,您是否可以在控制台中看到日志消息?请先确认。 标签的使用是正确的,我多次使用它。
但是,建议不要使用此标记,因为您为每个请求执行了许多控制器调用。您可以使用而不是调用第二个控制器来渲染模板。