como fazer um formulário complexo inserindo um objeto numa lista
20/06/2012 13:19
0
olá para todos! a minha duvida é a seguinte.: tenho duas classes , uma classe Empresa e outra classe Usuario , aonde Empresa possui vários usuarios e um usuario pertence a uma empresa.

Abaixo as classes Empresas e Usuario


class Empresa {
String razaoSocial
String endereco
//outras variaveis
//Mapeamento dos objetos
List usuarios
static hasMany = [usuarios:Usuario]
}



class Usuario {
String nome
String login
String senha
Empresa empresa
static belongsTo = [empresa:Empresa]
}


A duvida que eu tenho seria como criar um formulario complexo para cadastro de empresa, em que ao mesmo tempo que eu possa cadastrar a empresa, eu possa tbm cadastrar um usuario?

tipo no controller de empresa , eu criei um metodo adicionarUsuario, que insere um usuario na lista de usuarios da empresa


def adicionarUsuario(){
// criar um novo usuario com os parametros passados, porem como pegar esses dados do usuario que se criar do gsp?
def usuario = new Usuario(params.usuario)
List usuariosAdicionados = []
usuariosAdicionados.add(usuario)
// devolve a lista de usuarios adicionados
return usuariosAdicionados
}


e no metodo save , nao deveria ser isso aqui ?


def save(){
def empresaInstance = new Empresa(params)
empresaInstance.usuarios = adicionarUsuarios()
}


não sei se ficou muito claro o que eu quero fazer, mas quem ja passou por isso num projeto começando com grails , acho que poderá entender.

Desde já , obrigado pelas respostas e pela ajuda
Tags: listas, gsp, controller, save, list, hasMany, belongsTo


0
Olá, Marcio.

Se eu entendi o que você quer, sugiro o seguinte:

No GSP, nos campos onde desejar registrar os campos de Usuario, faça algo como:
<g:textField name="usuario.nome"/> <br/>
<g:textField name="usuario.login"/> <br/> // e assim por diante...


Dai, no controller:
def empresaInstance = new Empresa(params)
empresaInstance.usuarios = [new Usuario(params.usuario)]


Agora, se você quer adicionar vários usuários na empresa se uma só vez, aí é "mais caro" (mais complicado) rsrsrs



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