sirve que para mvc example español spring-mvc spring-3

que - Spring MVC: ¿Cómo eliminar el atributo de sesión?



spring mvc que es (1)

Intente utilizar el método WebRequest.removeAttribute lugar del método HttpSession.setAttribute (ejemplo 1). O de otra manera que haga exactamente lo mismo, puede usar ''SessionAttributeStore.cleanupAttribute'' (ejemplo 2).

EJEMPLO 1

@RequestMapping(value = "/finish", method = RequestMethod.GET) public String page4(@ModelAttribute User user, WebRequest request, SessionStatus status) { /** * store User ... */ status.setComplete(); request.removeAttribute("user", WebRequest.SCOPE_SESSION); return "redirect:/home"; }

EJEMPLO 2

@RequestMapping(value = "/finish", method = RequestMethod.GET) public String page4(@ModelAttribute User user, WebRequest request, SessionAttributeStore store, SessionStatus status) { /** * store User ... */ status.setComplete(); store.cleanupAttribute(request, "user"); return "redirect:/home"; }

Ejemplo de uso de @SessionAttributes continuación. ¿Cómo borrar user atributo de sesión del user después de que el asistente finalizó? En mi ejemplo, después de volver al atributo de sesión /wizard0 todavía existe. status.setComplete() y session.removeAttribute("user") pero no funciona.

@Controller @SessionAttributes("user") public class UserWizard { @RequestMapping(value = "/wizard0", method = RequestMethod.GET) public String page1(Model model) { if(!model.containsAttribute("user")) { model.addAttribute("user", new User()); } return "wizard/page1"; } @RequestMapping(value = "/wizard1", method = RequestMethod.GET) public String page2(@ModelAttribute User user) { user.setFirstname(Utils.randomString()); return "wizard/page2"; } @RequestMapping(value = "/wizard2", method = RequestMethod.GET) public String page3(@ModelAttribute User user) { user.setLastname(Utils.randomString()); return "wizard/page3"; } @RequestMapping(value = "/finish", method = RequestMethod.GET) public String page4(@ModelAttribute User user, HttpSession session, SessionStatus status) { /** * store User ... */ status.setComplete(); session.removeAttribute("user"); return "redirect:/home"; } }

EDITAR

Mi error. status.setComplete(); funciona bien session.removeAttribute("user") no es nada que hacer aquí.