Chamar um controller de uma gsp
09/02/2009 00:00
0
Olá pessoal, sou novo em grails e ja tenho experiencia com JSF. Gostaria de saber se consigo chamar um controler diretamente de uma tag em um gsp como é feito com JSF. Vejam o exemplo abaixo se da para entender o que estou tentando fazer.

Tenho esse controller

class MenuController {
def menuList = {

def menus = Menu.findAll("from Menu as m where m.raiz = null")

println(menus)

LinkedHashMap<Menu, List> menuList = [&#58;]
for (menu in menus) &#123;
menuList[(menu)] = Menu.findAllByRaiz(menu)
&#125;
return [menuList&#58; menuList]
&#125;

&#125;


e gostaria de chamar esse controler na minha gsp

<g&#58;each var=&quot;c&quot; in=&quot;$&#123;MenuController.menuList&#125;&quot;>
<li class=&quot;controller&quot;><g&#58;link controller=&quot;$&#123;c.value&#125;&quot;>$&#123;c.key.name&#125;</g&#58;link></li>
</g&#58;each>



Sei que com JSF quando o compilador do jsf encontra esse caso ele chama o controller e resolve o metodo e me retorna a resposta, agora com grails não sei bem como ficaria.

Obrigado[/code]
Tags: Grails


0
E ae blz?

Pelo que entendi vc está querendo chamar um método do controller quando clicar no link.

A tag g:link tem os atributos controller e action.


<g&#58;link controller=&quot;pessoa&quot; action=&quot;create&quot;>Inserir Pessoa</g&#58;link>



Espero ter ajudado.
Abraço
09/02/2009 00:00


0
Ao retornar o mapa no controller [menuList:new MenuController().menuList]

No grails voce não deveria 'chamar' o controller depois de sua execução. Ao retornar a view, o trabalho do controller está terminado. Voce simplesmente deve colocar no mapa de retorno tudo que a view precisará.

Um dica, se voce esta em uma view que precisa de um valor processado por outro controller, entao existe boas chances de ter logica em um controller que poderia estar em um serviço para ser reutilizada melhor.
09/02/2009 00:00


0
Bom pessoal valeu pelas respostas mas acho que acabei me expressando mal, na verdade o que estou querendo fazer é depois de me logar na aplicação, quando carrego a main.gsp quero montar meu menu dinamicamente. Pra isso criei a MenuController que pega os menus no banco. Estou ainda &quot;acostumado&quot; com o método de trabalho do JSF, pois com ele eu indico na tag o equivalente ao controller, que no caso é o back bean do jsf e ele executa isso pra mim. Acho que preciso mesmo é mudar meu modo de pensar e me adaptar ao paradigma do Grails. Como fariam para resolver isso ?
Obrigado,
10/02/2009 00:00


0
Antes de ontem precisei fazer isso. Coloquei um metodo na classe Domain que executa a lista que desejo pegar. E na GSP chamo o metodo da Classe: Menu.listaMenu().
No momento to sem o codigo aqui p postar, mas espero ter elucidado um pouco sua dúvida.
11/02/2009 00:00


0
Valeu ronny,

Vou tentar isso aqui .... qq coisa eu dou um grito pra galera ... obrigado pela ajuda e pelo tempo de todos.

[]'s
11/02/2009 00:00



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto