Acesso do conteúdo de uma classe de domínio em GSP.
22/02/2017 23:03
0
Minha ideia é a seguinte, criar uma página de cadastro onde o usuário cadastre  Minerios->Produtos->Bens, mas só poderia ter acesso ao passo seguinte se caso exista pelo menos um item precedente.   Inicia-se cadastrando minérios que dará acesso aos produtos formados por estes e assim por diante. Logo pensei em colocar um botão avançar na GSP que apareça apenas se já exista pelo menos um item cadastrado.  Utilizando um g:if para renderizar o botão avançar para página de cadastro de bens  apenas se já houver um minério cadastrado mas não consigo verificar essa condição.
Por exemplo:

<g:if test="${Minerais != NULL}">
 <g:link controller="Bem" action="create">
<button type="button">Avançar</button>
</g:link>
</g:if>


Sei que o correto seria :

<g:if test="${Minerais.list() !=NULL}">
 <g:link controller="Produto" action="create">
<button type="button">Avançar</button>
</g:link>
</g:if>


Mas ocorre um erro :

URI/minerais/createClassjava.lang.NullPointerExceptionMessageRequest processing failed; nested exception is org.grails.gsp.GroovyPagesException: 
Error processing GroovyPageView: Cannot invoke method list() on null objectCaused byCannot invoke method list() on null object

Sou novo em Grails, logo desconheço a gama de possibilidades para fazer isto. 
Tags: Grails,GSP,Precedência, Buttons, Tags


0
Ola Lucas

bom   apesar de achar isso  bem ruim  porque vc  quebra o MVC ,  há como vc fazer isso assim

${br.com.package.Minerio.findAll().isEmpty()} ele vai te retornar um boolean

Há maneiras bem melhores de se fazer isso  usando jquery por exemplo  e um wizard , fazendo chamadas JSON pro controller por exemplo
23/02/2017 09:55


0
Olá Lucas, não sei se entendi bem mas vamos lá, acredito que utilizando "remoteFunction", "templates" e populando alguns comboboxes na mesma tela resolveria o seu problema, seria algo assim:
1 - Vc teria um campo para digitar o minério, daí o usuário clicaria em um botão "pesquisar", ou a consulta poderia ser via ajax à medida que o usuário digita.
2 - Se encontrar algum produto, é carregado um combobox com as opções de produtos, caso contrário, mostra uma mensagem de "Nenhum produto encontrado"
3 - Uma vez selecionando o produto no combobox, é carregado outro combobox com os bens(se existirem), ou novamente uma mensagem de "Nenhum bem encontrado"
4 - Por fim clica em cadastrar e pronto!

Porém se no seu caso for necessário selecionar mais de um produto ou bem para um minério, o combobox não atende, mas você renderizar um template com os produtos/bens e cada um com um checkbox para selecionar as opções.

Esse material pode te ajudar bastante: https://www.javacodegeeks.com/2013/05/grails-ajax-examples.html
03/03/2017 10:57



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