5
respostas

Editar produto com Vraptor

Boa tarde à todos,

Estou com uma dúvida.

Estou acompanhando os cursos de Vraptor, juntamente com os vídeos e estou com a seguinte dificuldade:

Na parte de cadastro, criei uma table com os valores da tabela Produto e logo abaixo tem um botão que chama uma modal de cadastro, até aí tudo bem está tudo funcionando, o detalhe é na hora de editar o Produto.

  • Como faço para pegar a linha da table e carregar o Produto na modal para a edição?
5 respostas

Oi Roberto, Pelo o que eu entendi você quer clicar em algum botão editar e então existirá alguma ação que vai levar os dados de uma determinada linha da tabela para um modal para que possam ser editados, correto? Nesse caso você vai precisar manipular o html da página para colocar esses valores lá, e quando falamos disso precisamos usar javascript. Se quiser ir mais a fundo e entender como funciona dá uma olhada nos cursos de javascript =)

Obrigado pelo seu retorno Thiago. Vou dar uma olhada nos cursos.

Bom dia pessoal,

estou passando por dúvidas e ainda não sei o certo o que devo perguntar, segue o que está acontecendo:

Na Controller:

    @Get
    public Produto edita(Long id) {
        return pDao.findById(id);
    }

/*    @Get
    public Produto edita(Long id) {
        result.of(this).formulario();
        return pDao.findById(id);
    }*/

/*    @Get
    public Produto edita(Long id) {
        Produto p = pDao.findById(id);
        result.of(this).formulario();
        return p;
    }*/

No JSP /listar:


<td>${p.id}</td>
                                <td>${p.nome}</td>
                                <td><fmt:formatNumber type="currency" value="${p.valor}" />
                                </td>
                                <td>${p.quantidade}</td>
                                <td><a href="edita?id=${p.id }">Editar</a></td>    

                                <%-- <td>
                                    <div class="btn-group" role="group">
                                        <button type="button"
                                            class="btn btn-info dropdown-toggle waves-effect waves-classic"
                                            id="iconDropDownOpcoes" data-toggle="dropdown"
                                            aria-expanded="false">
                                             <i class="icon pe-user" aria-hidden="true"></i>
                                        </button>
                                        <div class="dropdown-menu" aria-labelledby="exampleIconDropdown3" role="menu" x-placement="bottom-start" style="position: absolute; transform: translate3d(0px, 36px, 0px); top: 0px; left: 0px; will-change: transform;">                                            
                                            <a class="dropdown-item" href="${pageContext.request.contextPath}/produto/edita?id=${p.id}" role="menuitem" data-toggle="modal" data-target="#myModalEdit" ><i class="icon md-edit" aria-hidden="true"></i>Editar</a>
                                            <a href="edita?id=${p.id}">Editar</a>
                                            <a class="dropdown-item" href="#" role="menuitem"><i class="icon md-close-circle" aria-hidden="true"></i>Excluir</a>
                                            <a class="dropdown-item" href="${pageContext.request.contextPath}/produto/enviaPedidoDeNovosItens?p.nome=${p.nome}" role="menuitem"><i class="icon md-money" aria-hidden="true"></i>Cotar</a>
                                        </div>
                                    </div>
                                </td> --%>

No JSP formulario para edição:

<form action="${pageContext.request.contextPath}/produto/adiciona" method="post">

    <fieldset>

        <legend>Editar Produto</legend>

        <input type="hidden" name="produto.id" value="${produto.id}" /> 

        <label for="nome">Nome:</label>
        <input id="nome" type="text" name="produto.nome" value="${produto.nome}"/>

        <label for="quantidade">Quantidade:</label>
        <input id="quantidade" type="text" name="produto.quantidade" value="${produto.quantidade}"/>        

        <label for="valor">Valor:</label>
        <input id="valor" type="text" name="produto.valor" value="${produto.valor}"/>       

        <input type="submit" value="Salvar" />

    </fieldset>

</form>

O retorno na página:

HTTP Status 404 - /ceo-project/WEB-INF/jsp/produto/edita.jsp
type Status report

message /ceo-project/WEB-INF/jsp/produto/edita.jsp

description The requested resource is not available.

Apache Tomcat/7.0.85

o que está comentado são as formas como já tentei;

Alguém pode ajudar por favor?

Boa tarde,

ainda estou com dificuldades para resolver esse problema.

Alguém pode me ajudar?

Estou conseguindo pegar o produto, mas na view formulario.jsp ele aparece dessa forma:

br.com.ceo.model.Produto@6dd841d6

Oi Roberto, vi que vc tinha coloca do o código em um comentário anterior. Ele continua assim ainda ou já mudou? Se mudou pode postar o código recente?

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software