繁体   English   中英

Grails g:include标签包含控制器调用

[英]Grails g:include tag to include controller call

在这里问了这个问题我有一个新的grails应用程序,索引页面由几个部分模板组成。 我的每个部分模板都需要从不同的控制器加载数据,建议的解决方案是使用标记-我已经尝试过,但是什么也没发生,并且在网上搜索后,我找不到任何实际可用的功能示例。

这是我的部分模板_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在其中的原因)-但我什么也没得到。

有人可以指出我的工作示例或解释我是否缺少什么吗?

谢谢

我没有发现您的代码有任何重大错误。 您在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的页面实际上已被调用/渲染了吗?

调用http:// localhost:8080 / myapp / home / showMessage时,您可以在控制台中看到日志消息吗? 请先确认。 标签的使用是正确的,我在很多时候都使用过。

但是,不建议使用此标记,因为您会为每个请求执行许多控制器调用。 您可以改用渲染模板而无需调用第二个控制器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM