2014-11-04 42 views
0

我有一個GSP將從FizzController呈現,但包含JavaScript代碼,需要將AJAX調用發送回BuzzController從2個不同的控制器調用Grails GSP

我目前的項目目錄結構:

myapp/ 
    grails-app 
     controllers/ 
      myapp/ 
       FizzController.groovy 
       BuzzController.groovy 
     views/ 
      fizz/ 
       mainPage.gsp 
      buzz/ 
       buzz.gsp 

     <normal grails-app dir> 
    src/ 
    web-app/ 

    <normal directory structure for Grails app> 

FizzController#index方法渲染GSP:

def index() { 
    render(view: "buzz", controller: "buzz", model: fetchAndInjectModel()) 
} 

當我運行這一點,去http://localhost:8080/myapp/fizz,我希望它使我的GSP。相反,我得到了我的自定義「頁面未找到」頁面。應用日誌中沒有任何內容。任何關於這裏發生的事情的想法?

回答

2

render方法沒有參數controller,所以你需要使用類似:

渲染視圖: '/嗡嗡/嗡嗡' 聲,型號:fetchAndInjectModel()

文檔:http://grails.org/doc/latest/ref/Controllers/render.html

另一種選擇是做一個重定向:

重定向(控制器:「嗡嗡聲」,動作:「嗡嗡聲」)

+0

謝謝@vcarvalho(+1) - 是否有任何方式來傳遞'模型'裏面的重定向? – smeeb 2014-11-04 10:58:37

+0

@smeeb不,但是您可以傳遞例如您的模型的'id'或其他您需要的參數。用法:[http://grails.org/doc/latest/ref/Controllers/redirect.html](http://grails.org/doc/latest/ref/Controllers/redirect.html) – Victor 2014-11-04 11:01:48