1
resposta

Neither BindingResult nor plain target object for bean name 'usuario' available as request attribute

Boa noite senhores, Estou faz mais de tres horas para resolver um problema que para muitos é fácil, mas pra mim não, infelizmente.

O erro citado no assunto, segue:

fev 12, 2018 7:43:45 PM org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet [dispatcher] in context with path [/agenda] threw exception [java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'usuario' available as request attribute] with root cause
java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'usuario' available as request attribute

Já tentei de tudo, mas infelizmente não consigui resultados. Segue abaixo o controller:

@Controller
public class LoginController {

    @GetMapping("/")
    public String login() {
        return "/acesso/login";
    }

    @RequestMapping(value="/logar", method=RequestMethod.POST)
    public String efetuarLogin(@ModelAttribute("usuario")Usuario usuario, BindingResult result, Model model) {

        if(result.hasErrors()) {
            System.out.println("Resultado:" + result);
        }

        if(usuario.getEmail() == "rafael" && usuario.getPassword() == "123") {
            model.addAttribute("usuario", usuario);
        }
        return "acesso/login";
    }    
}

e também o form de login:

<spring:url value="/logar" var="logar"/>
                <form:form  modelAttribute="usuario" action="${logar}" cssClass="form-horizontal">
                    ...
        </form:form>

Será que alguém poderia de ajudar nesse problema. Estou tentando exibir o formulário de login.

Obrigado, Rafael

1 resposta

O form de login precisa ter um modelAttribute com a chave "usuario" no request. tenta assim:

    @GetMapping("/")
    public String login(Usuario usuario) {
        return "/acesso/login";
    }