2014-11-04 3 views
0

У меня есть GSP, который будет отображаться с FizzController, но содержит код JavaScript, которому необходимо отправить обратные звонки AJAX обратно в BuzzController.Вызов 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

Другой вариант сделать редирект:

redirect (контроллер: «buzz», action: «buzz»)

+0

Thanks @vcarvalho (+1) - есть ли способ передать «модель» внутри этого перенаправления? – smeeb

+0

@smeeb нет, но вы можете передать, например, 'id' вашей модели или какой-либо другой параметр, который вам нужен. Использование: [http://grails.org/doc/latest/ref/Controllers/redirect.html](http://grails.org/doc/latest/ref/Controllers/redirect.html) – Victor

Смежные вопросы