Как я могу отрисовать в представлении GSP другого контроллера? - PullRequest
8 голосов
/ 05 мая 2011

Я новичок в Grails, только начал с небольшого приложения,

Я ищу решение проблемы ниже,

Может ли кто-нибудь сказать мне, как я могу отобразить на странице просмотра GSP другого контроллера со страницы текущего просмотра контроллера.

Заранее спасибо, Laxmi.P

Ответы [ 3 ]

16 голосов
/ 05 мая 2011

Вы можете использовать в своих действиях render(view: '/ctrlr/action', model: [fooInstance: foo]) или redirect(controller: 'ctrlr', action: 'action') динамические методы контроллера , в зависимости от того, требуется ли вам уже пользовательская модельиметь или полностью перенаправить на логику этого действия.

Если вы спрашиваете о коде GSP, есть тег визуализации .

11 голосов
/ 05 мая 2011

Предположим, вы хотите визуализировать finalView.gsp из FirstController из normalView.gsp из SecondController, имеющего следующую структуру:

FirstController.groovy
   finalView.gsp
SecondController.groovy
   normalView.gsp

normalView.gsp будет иметь:

<g:link controller="SecondController" action="redirectToFirstController">Redirect to finalView.gsp </g:link>

Тогдавнутри вашего SecondController определите одно действие с именем redirectToFirstController

def redirectToFirstController =  {
 redirect(controller:"FirstController",action:"renderFinalView")
}

А внутри вашего FirstController:

def renderFinalView = {
render(view:"finalView");
}
1 голос
/ 05 мая 2011

не совсем уверен, но я думаю, что вы должны использовать ModelAndView Class.

return new ModelAndView("/controller/view", [ model : youModel ])
...