Exibir um gsp dentro da outra
26/12/2012 17:41
0
Olá,

pessoal eu tenho uma página gsp que é só um cabeçalho e gostaria de manter este meu cabeçalho e chamar outra action que exiba o conteudo mantendo a parte superior o (cabeçalho). Alguém pode me ajudar a fazer isso?

esse é o código que chama a outra action

<g:formRemote name="myForm" update="updateMe" method="GET"
action="${createLink(controller: 'soma', action: 'subResultado')}"
url="[controller: 'soma', action: 'subResultado']">
Listar: <input name="id" type="text" />
</g:formRemote>


mas quero exibir o subResultado dentro da minha página. Como faço isso?
Tags: gsp


0
É só manter o seu layout e ter uma div com id igual a updateMe, não?

O conteúdo retornado será renderizado nesta div.


0
Eu acrescentei uma div no meu código.


<g:formRemote name="myForm" update="updateMe" method="GET"
action="${createLink(controller: 'soma', action: 'subResultado')}"
url="[controller: 'soma', action: 'subResultado']">
Listar: <input name="id" type="text" />
</g:formRemote>

<div id="updateMe">

</div>



Mas a action subResultado continua sendo aberta em outra página :-(
26/12/2012 18:18


0
Você está incluindo as bibliotecas Javascript no seu GSP?
Isto ocorre quando você não inclui.

Tal como no exemplo abaixo, que sempre deve ser incluído no <head> caso você esteja usando jquery plugin.

<g:javascript library="jquery" plugin="jquery"/>



0
Oi Henrique, acrescentei

<g:javascript library="jquery" plugin="jquery"/>


E ainda não funcionou.

Outra duvida é a de passar parâmetros para minha action

def subResultado = {a -> response << a }


Quero passar um valor para o parâmetro "a", através do código:


<%@ page contentType="text/html;charset=UTF-8" %>

<html>
<g:javascript library="jquery" plugin="jquery"/>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Sample title</title>
</head>
<body>
<h1>Testando aqui</h1>
<g:formRemote name="myForm" update="updateMe" method="GET"
action="${createLink(controller: 'soma', action: 'subResultado')}"
url="[controller: 'soma', action: 'subResultado']">
Listar: <input name="id" type="text" />
</g:formRemote>
<br>

<div id="updateMe">

</div>

</body>
</html>



Alguém pode me ajudar?
26/12/2012 19:36


0
Já tentou dar uma olhada no código gerado através do firebug, pode ser que encontre o problema pois no código gerado vai aparecer o javascript e tudo mais.
27/12/2012 14:06


0
Fabiano, alguns probleminhas:

1.Caso você esteja usando Grails 2+, faltou
<r:layoutResources />

logo antes de fechar <head>.

2. Não use
action="${createLink(controller: 'soma', action: 'subResultado')}"

Não deve ser usado mesmo! Basta o atributo url. Assim, seu código deveria ficar:
<g:formRemote name="myForm" url="[controller: 'soma', action: 'subResultado']" update="updateMe">
N1: <input name="n1"/> <br>
N2: <input name="n2"/> <br>
<input type="submit" value="Somar!!"/>
</g:formRemote>


Dica: Eu prefiro a abordagem de por o código AJAX no botão e não no formulário. Nesse caso seu formulário ficaria assim:
<form>
N1: <input name="n1"/> <br>
N2: <input name="n2"/> <br>
<g:submitToRemote update="updateMe" value="Somar!"
url="[controller: 'soma', action: 'subResultado']"></g:submitToRemote>
</form>



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