1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

VRaptor: Controller recebendo parametro null do form

Bom Dia,

Me Baseando na apostila FJ28 sobre VRaptor, estou tentando implementar Login e Autenticação no meu sistema.

A minha controller tem 2 métodos que recebem parâmetros vindos dos actions dos respectivos forms. Porém, esse parâmetro (usuario) chega instanciado mas com todos os seus valores setados como null, ao invés dos valores que estavam nos forms. Já estou a 2 dias tentando e não encontro a solução. Estou começando a aprender VRaptor e creio que seja coisa simples:

Minha Model do Usuario:

package br.com.minhaempresa.meuprojeto.model;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.ManyToOne;

@Entity
public class Usuario {

    @Id
    private String login;

    private String senha;

    private String nome;

    @ManyToOne
    private Empresa empresa;

    public String getLogin() {
        return login;
    }

    public String getSenha() {
        return senha;
    }

    public String getNome() {
        return nome;
    }

}

Minha Controller com os 2 Metodos que recebem parametros dos 2 Forms. Lembrando que os erros ocorrem nos métodos "adiciona" e "loga":

package br.com.minhaempresa.meuprojeto.controller;

import br.com.minhaempresa.meuprojeto.dao.UsuarioDao;
import br.com.minhaempresa.meuprojeto.infra.UsuarioWeb;
import br.com.minhaempresa.meuprojeto.model.Usuario;
import br.com.caelum.vraptor.Get;
import br.com.caelum.vraptor.Path;
import br.com.caelum.vraptor.Post;
import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;
import br.com.caelum.vraptor.Validator;
import br.com.caelum.vraptor.validator.ValidationMessage;

@Resource
public class UsuariosController {

    private final UsuarioDao dao;
    private final Result result;
    private final Validator validator;
    private final UsuarioWeb usuarioWeb;

    public UsuariosController(UsuarioDao dao, Result result,
            Validator validator, UsuarioWeb usuarioWeb) {
        this.dao = dao;
        this.result = result;
        this.validator = validator;
        this.usuarioWeb = usuarioWeb;
    }

    @Path("/logout")
    public void logout() {
        usuarioWeb.logout();
        result.redirectTo(UsuariosController.class).login();
    }

    @Post("/loga")
    public void loga(Usuario usuario) {
        Usuario carregado = dao.carrega(usuario);
        if (carregado == null) {
            validator.add(new ValidationMessage("Login e/ou senha inválidos",
                    "usuario.login"));
        }
        validator.onErrorUsePageOf(UsuariosController.class).login();

        usuarioWeb.login(carregado);

        // result.redirectTo(ProdutosController.class).lista();
    }

    @Get
    public void login() {
    }

     @Post
     @Path("/usuarios/adiciona")
    public void adiciona(final Usuario usuario) {
        if (dao.existeUsuario(usuario)) {
            validator.add(new ValidationMessage("Login já existe",
                    "usuario.login"));
        }

        validator.onErrorUsePageOf(UsuariosController.class).novo();

        dao.adiciona(usuario);

        // result.redirectTo(ProdutosController.class).lista();
    }

    public void novo(){
    }

}

Os 2 Forms com os actions apontando para aqueles 2 mtodos da controller:

login.jsp


<div class="col-md-4">
    <div class="panel panel-default">
        <div class="panel-heading">PPP</div>
        <div class="panel-body">

            <form action="<c:url value="/loga"/>" method="POST" class="form-horizontal" role="form">

                <div class="form-group">
                    <label for="inputEmail3" class="col-sm-2 control-label">Email</label>
                    <div class="col-sm-10">
                        <input type="email" class="form-control" id="inputEmail3" placeholder="Email" name="usuario.login">
                    </div>
                </div>


                <div class="form-group">
                    <label for="inputPassword3" class="col-sm-2 control-label">Senha</label>
                    <div class="col-sm-10">
                        <input type="password" class="form-control" id="inputPassword3"    placeholder="Senha" name="usuario.senha">
                    </div>
                </div>


                <div class="form-group">
                    <div class="col-sm-offset-2 col-sm-10">
                        <button type="submit" class="btn btn-success">Entrar</button>
                        <a href="<c:url value="/usuarios/novo"/>" class="btn btn-default">Cadastrar-se</a>
                    </div>
                </div>

            </form>


        </div>
    </div>
</div>

novo.jsp

<div class="col-md-4">
<div class="panel panel-default">
    <div class="panel-heading">Criar novo usuário</div>
        <div class="panel-body">

            <form role="form" id="usuariosForm" action="<c:url value="/usuarios/adiciona"/>" method="post">

                  <div class="form-group">  
                    <label for="nome">Nome:</label>
                      <input class="form-control" id="nome" type="text" name="usuario.nome" value="${usuario.nome}"/>
                </div>

                <div class="form-group">
                    <label for="login">Login:</label>
                      <input class="form-control" id="login" type="text" name="usuario.login" value="${usuario.login}"/>
                </div>

                <div class="form-group">
                    <label for="senha">Senha:</label>
                      <input class="form-control" id="senha" type="password" name="usuario.senha" value="${usuario.senha}"/>
                </div>

                <div class="form-group">
                    <label for="confirmacao">Confirme a senha:</label>
                    <input class="form-control" id="confirmacao" equalTo="#senha" type="password"/>
                </div>

                <div class="form-group">
                    <input class="btn btn-success" type="submit" value="Salvar"/>
                </div>
            </form>

            <script type="text/javascript">
                  $('#usuariosForm').validate();
            </script>
</div>
</div>
</div>

As libs que estão no meu projeto

WebContent/WEB-INF/lib/antlr-2.7.7.jar
WebContent/WEB-INF/lib/aopalliance-1.0.jar
WebContent/WEB-INF/lib/aspectjrt-1.6.9.jar
WebContent/WEB-INF/lib/classmate-0.8.0.jar
WebContent/WEB-INF/lib/commons-collections-3.1.jar
WebContent/WEB-INF/lib/commons-fileupload-1.3.jar
WebContent/WEB-INF/lib/commons-io-1.3.2.jar
WebContent/WEB-INF/lib/commons-logging-1.1.1.jar
WebContent/WEB-INF/lib/dom4j-1.6.1.jar
WebContent/WEB-INF/lib/gson-2.2.4.jar
WebContent/WEB-INF/lib/guava-11.0.2.jar
WebContent/WEB-INF/lib/guice-3.0.jar
WebContent/WEB-INF/lib/guice-multibindings-3.0.jar
WebContent/WEB-INF/lib/hamcrest-core-1.2.jar
WebContent/WEB-INF/lib/hamcrest-library-1.2.jar
WebContent/WEB-INF/lib/hibernate-commons-annotations-4.0.4.Final.jar
WebContent/WEB-INF/lib/hibernate-core-4.3.0.Final.jar
WebContent/WEB-INF/lib/hibernate-entitymanager-4.3.0.Final.jar
WebContent/WEB-INF/lib/hibernate-jpa-2.1-api-1.0.0.Final.jar
WebContent/WEB-INF/lib/hibernate-validator-5.0.0.Final.jar
WebContent/WEB-INF/lib/iogi-0.9.2.jar
WebContent/WEB-INF/lib/jandex-1.1.0.Final.jar
WebContent/WEB-INF/lib/javassist-3.12.1.GA.jar
WebContent/WEB-INF/lib/javassist-3.18.1-GA.jar
WebContent/WEB-INF/lib/javassist-3.7.ga.jar
WebContent/WEB-INF/lib/javax.el-2.2.4.jar
WebContent/WEB-INF/lib/javax.el-api-2.2.4.jar
WebContent/WEB-INF/lib/javax.inject-1.jar
WebContent/WEB-INF/lib/jboss-logging-3.1.3.GA.jar
WebContent/WEB-INF/lib/jboss-logging-annotations-1.2.0.Beta1.jar
WebContent/WEB-INF/lib/jboss-transaction-api_1.2_spec-1.0.0.Final.jar
WebContent/WEB-INF/lib/jettison-1.2.jar
WebContent/WEB-INF/lib/joda-time-1.6.jar
WebContent/WEB-INF/lib/jsr250-api-1.0.jar
WebContent/WEB-INF/lib/jsr305-1.3.9.jar
WebContent/WEB-INF/lib/jstl-1.2.jar
WebContent/WEB-INF/lib/jta-1.1.jar
WebContent/WEB-INF/lib/log4j-1.2.16.jar
WebContent/WEB-INF/lib/mirror-1.6.1.jar
WebContent/WEB-INF/lib/mysql-connector-java-5.1.26-bin.jar
WebContent/WEB-INF/lib/objenesis-1.3.jar
WebContent/WEB-INF/lib/ognl-2.7.3.jar
WebContent/WEB-INF/lib/paranamer-2.5.2.jar
WebContent/WEB-INF/lib/scannotation-1.0.2.jar
WebContent/WEB-INF/lib/slf4j-api-1.6.1.jar
WebContent/WEB-INF/lib/slf4j-log4j12-1.6.1.jar
WebContent/WEB-INF/lib/stax-api-1.0.1.jar
WebContent/WEB-INF/lib/validation-api-1.1.0.Final.jar
WebContent/WEB-INF/lib/vraptor-3.5.3.jar
WebContent/WEB-INF/lib/xpp3_min-1.1.4c.jar
WebContent/WEB-INF/lib/xstream-1.3.1.jar

Quem puder me dar uma luz no fim do Tunel, AGRADEÇO MUITO!!!

Abraçs! :D

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags jsp vraptor hibernate jpa null ou faça a sua própria pergunta.