Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Problema para chamar o método lista do Controller

Boa tarde pessoal!

Eu criei o método lista no ProdutoDao:

public List<Produto> lista() {
    TypedQuery<Produto> query = manager.createQuery("Select p from Produto p", Produto.class);
    return query.getResultList();
    }

Depois criei o controller (ProdutoController), chamando o método lista do ProdutoDao:

public void lista() {
    List<Produto> produtos = produtoDao.lista();
    result.include("produtos", produtos);
}

Depois criei o .jsp da lista:

Início do código...

    <tbody>
        <c:forEach items="${produtos}" var="produto">
            <tr>
                <td><c:if test="${not empty produto.codigo}">
                    ${produto.codigo}
                </c:if></td>
Restante do código...

Até ai beleza, tudo funcionando perfeitamente... Porém houve a necessidade de adicionar os produtos das outras empresas, e a quantidade de campos muda de empresa para empresa... Enfim, adicionei na tabela os campos existentes para os produtos das TRÊS empresas...

Criei adicionei em WEB-INF\jsp as pastas: produtoEmpresa1 ; produtoEmpresa2 e produtoEmpresa3 e em cada pasta dois .jsp´s o formulario.jsp e o lista.jsp

Deixei somente UM ProdutoDao...

Renomeei o ProdutoController para ProdutoEmpresa1Controller, e criei ProdutoEmpresa2Controller e ProdutoEmpresa3Controller...

Mas agora o lista.jsp não carrega mais os produtos no forEach...

3 respostas
solução!

A convenção do vraptor sempre vai buscar uma pasta com um nome baseado no controler e uma página baseada no nome do método que foi referenciado pela url. Se a página lista.jsp não segue essa convenção, vc vai precisar usar o result diretamente e dar o forward para ela.

Bom dia Alberto!

Eu estou seguindo esse padrão, mas tinha somente um DAO... o "ProdutoDao"...

Criei o ProdutoEmpresa1Dao, ProdutoEmpresa2Dao e ProdutoEmpresa3Dao e funcionou...

Seria melhor eu trabalhar com o result diretamente e dar o forward... Se sim como eu faço isso ??

Obrigado!!

Blz, Alberto...

Deu certo...

Obrigado pela dica !!! Abraço!