Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Falha ao passar o valor da View para o Controller

Pelo que eu entendi, o meu problema é o mesmo presente aqui, no segundo post aqui e no final desse post aqui. TODOS sem solução.

Sempre que tento passar o usuario, o usuario.email ou o quer que seja do usuario para o form de edição, eu percebo que ele está null. Eu não consigo encontrar o porquê e já tentei de diversas maneiras diferentes, mas sempre passar pelo mesmo problema, não estou conseguindo recuperar os dados do usuário para poder passar para a tela onde farei a edição dos roles.

lista.jsp

        <c:forEach items="${usuarios}" var="usuario">
          <tr>
            <td>${usuario.nome}</td>
            <td>${usuario.email}</td>
            <td>${usuario.roles}</td>
            <td>
              <form:form servletRelativeAction="${s:mvcUrl('UC#editarForm').arg(0, usuario.email).build()}"
                method="POST" modelAttribute="email">
                <input type="image" name="usuario" src="${resPath}/imagens/editar.png" alt="Editar" title="Editar" >
              </form:form>
            </td>
          </tr>
        </c:forEach>

UsuarioController.jsp

  @RequestMapping("/roles/{email}")
  public ModelAndView editarForm(@PathVariable("email") String email) {
    ModelAndView mav = new ModelAndView("/usuarios/editar");

    Usuario usuario = usuarioDao.loadUserByUsername(email);
    mav.addObject("usuario", usuario);

    List<Role> listaRoles = roleDao.listar();
    mav.addObject("listaRoles", listaRoles);

    return mav;
  }

tentei de diversas maneiras, sendo que tentar replicar a forma como é feito com o detalhe (aplicado durante o curso de Spring) foi a última tentativa. Não adiantou, afinal, a informação não está sendo passada para o método editarForm. Do jeito que está aí, a exceção lançada foi:

javax.persistence.NoResultException: No entity found for query

mas recebi a mesma em outras tentativas também. Nesse momento, já havia retirado o meu sysout do email recebido por parâmetro do código, mas ele teria impresso no console null como nas outras vezes.

Alguém poderia me indicar o que estou deixando passar? Realmente não tenho ideia e google + stackoverflow não ajudaram dessa vez =/

1 resposta
solução!

Solução aqui.

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