开发者

Grails g:include tag to include controller call

开发者 https://www.devze.com 2023-02-18 10:14 出处:网络
I asked this question here I have a new grails app and the index page is made up of several partial templates.Each of my partial templates need to load data from a different controller, the suggested

I asked this question here I have a new grails app and the index page is made up of several partial templates. Each of my partial templates need to load data from a different controller, the suggested solution was to use the tag - I have tried this but seeing nothing happen, and having searched the web I cant find any fully functioning examples of this in action.

Here is my partial template _newsFeed.gsp:

<div id="news_feed">
<g:include controller="news" action="latestsNews" /></div>

and my controller NewsController.groovy:

class NewsController {

def latestsNews = {
    println "in controller"
    [news: "News Headline!"]
}

In the above example, Im just trying to confirm that the controller is being called (which is why the println is there开发者_如何学运维) - but im never getting anything.

Can someone point me towards a working example or explain if i am missing something?

Thanks


I don't see anything major wrong with your code. You are missing a closing brace in your NewsController, but I suspect that was just a typo. I just tested the following:

class HomeController {

   def showMessage = {
     println "Showing message"
     [message: 'this is a message']
   }
}

showMessage.gsp just has ${message} in it. And then in my index.gsp

<g:include controller="home" action="showMessage" />

I get the correct response. Is everything else in your view rendering correctly, are you sure the page with the includes is actually getting called/rendered?


When invoking http://localhost:8080/myapp/home/showMessage can you see the log messages in your console ? Please make sure of that first. The use of the tag is correct and I used it many times ago.

However the use of this tag is not recommended because you perform many controller calls for each request. You can use instead to render a template without invoking a second controller.

0

精彩评论

暂无评论...
验证码 换一张
取 消