retornar uma list somente com os registros de usuario
23/09/2014 17:42
0
Desculpe por perguntar mas sou novo no grails.
Queria saber com retorna uma view de list somente com os registros de um determinado usuario em que eu passo o id e no final ele renderiza a tela, esse metodo tem que ser feito no controller.
Desde ja Obrigado.
Tags: list


1
Meio generica essa pergunta..se tu seguir algum exemplo da documentação tem.. mas seria algo mais ou menos assim:

class DataController{
def index(){
def user = User.get(params.id)
def items = Data.findAllByUser(user)
[items: items}
}
}


Ai vai passar o model items para a view index.gsp.

Dá uma olhada aqui http://grails.asia/grails-tutorial-for-beginners/

flw
23/09/2014 18:34


0
vou ver se consigo exemplificar tenho que criar um botão que ao clicar o Usuário irar ver todas as ordens de serviço criadas utilizando como parâmetro o seu usuário logado, a questão e que eu já tenho uma list.gsp para as Ordens de serviço e quero reaproveitar ela nessa lista, preciso que no final do método ela renderize para essa list.gsp os dados vão ser os mesmos a diferença e que só existira ordens de serviço criadas por aquele usuário.
Desde já Obrigado.
23/09/2014 20:55


0
Ok.. pelo que entendi você já tem uma view para renderização e quer reutiliza-la para esse caso, certo? Para recuperar o user logado vai depender do seu mecanismo de segurança.. se estiver usando o spring secutiry use isto em seu controller:

def springSecurityService
def getUser(){
def principal = springSecurityService.getPrincipal()

if("anonymousUser".equals(principal.toString())){
return null
}

return User.findWhere(username: springSecurityService.getPrincipal().username)
}


Essa lógica recupera o usuário logado. No metodo de listagem do controle você testa para recuperar todas as ordens ou só as ordens do usuário logado, isso depende da sua regrada de negócio. E para renderizar uma view de outro controle você usa:

def ordens = Ordem.findAllByUser(getUser())
render '/outro/list', model: [ordens: ordens]


Ou para ficar mais organizado você pode criar um template.. um aquivo com o códido reutilizavel com o prefixo _ (undescore), e usar assim:

<g:render template='/extra/ordens' model='[ordens: ordens]'/>


Sendo que existe uma pasta extra logo abaixo de views e um templete lá dentro chamado _ordens.gsp com o código reutilizavel. Nesse caso você inclui o template no seu gsp e não precisa fazer o render de um gsp de outra pasta.. Se ficou confuso dá uma olhada na documentação e procura por templates do grails que é barbada.. espero que ajude! abraço
23/09/2014 22:54



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