Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Objeto Nulo

Pessoal, quando eu tento pegar um formulario de um Tipo, o formulario é retornado nulo.

    @Inject
    private FormFactory formularios;

    public Result salvaPessoa() {
        Form<Pessoa> form = this.formularios.form(Pessoa.class).bindFromRequest();        
        return ok("salva pessoa "+ form.get().getNome());

    }

Porém, se eu fizer do outro jeito, isso não ocorre. Alguém pode me ajudar?

@Inject
    private FormFactory formularios;

    public Result salvaPessoa() {
        DynamicForm form = this.formularios.form().bindFromRequest();
        String nome = form.get("nome");
        return ok("salva pessoa "+ nome);

    }
6 respostas
solução

Oi Marcos, como a classe FormFactory foi criada no curso, pode ser que haja algum bug na implementação dela. Tem como mostrar a classe?

Olá Marcos e Alberto, tudo bom?

Alberto, a classe FormFactory é do próprio Play, então a única chance de estar dando errado é se a classe errada foi importada.

Marcos, pode conferir se tem um import play.data.FormFactory; no seu código?

Outra coisa, é possível que tenha algo faltando no seu modelo. Pode compartilhar conosco essas duas coisas?

  1. sua classe Pessoa
  2. a view em que você cria o formulário

O Play usa os setters pra popular o modelo, então se sua classe não possuir estes métodos, os atributos virão nulos mesmo.

Espero resposta e desculpe pela demora!

Olá Marcos, tudo bom? Queria saber se você conseguiu resolver o seu problema ou se ainda está tendo dificuldades!

Qualquer coisa estou por aqui pra ajudar!

Obrigado pessoal pela força. Mas ta tudo certo já Abraço

Opa Marcos, e qual foi a solução para o seu problema? Compartilha aqui com a gente!

Olha. Eu tive uma série de problemas. Então eu não sei precisar qual das medidas resolveu essa questão. Acho que teve a ver com o fato de eu não ter feito getters e setters nos modelos. De maneira lógica, eu não precisava. Mas parece que o play precisa.