Saltar al contenido

Pasando el atributo del modelo durante la redirección en Spring MVC y evitando lo mismo en la URL

Solución:

RedirectAttributes solo funciona con RedirectView, siga lo mismo

@RequestMapping(value="/Login",method = RequestMethod.POST)
public RedirectView loginValidate(HttpServletRequest req, RedirectAttributes redir){
...

    redirectView= new RedirectView("/foo",true);
    redir.addFlashAttribute("USERNAME",uname);
    return redirectView;
}

Aquellos atributos flash se pasan a través de la sesión (y se destruyen inmediatamente después de su uso; consulte el Manual de referencia de Spring para obtener más detalles). Esto tiene dos intereses:

  • no son visibles en la URL
  • no está restringido a String, pero puede pasar objetos arbitrarios.

Debe tener cuidado aquí porque creo que lo que está tratando de hacer no está respaldado por una buena razón. los “redireccionar” directiva emitirá un OBTENER solicitud a su controlador. los OBTENER la solicitud solo debe recuperar el estado existente mediante los parámetros de solicitud, este es el contrato de método. Ese OBTENER solicitud no debe dependen de una interacción previa o de cualquier objeto almacenado en algún lugar de la sesión como resultado de ella. OBTENER La solicitud está diseñada para recuperar el estado existente (persistente). Tu original (CORREO) la solicitud debería haber persistido todo lo que necesita para usted OBTENER solicitud para recuperar un estado.

RedirectAttributes no están diseñados para respaldarlo en este caso, e incluso si logró usarlo correctamente, solo funcionará una vez y luego se destruirán. Si luego actualiza el navegador, obtendrá un error de aplicación porque ya no puede encontrar sus atributos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *