2013-06-24 3 views
0

J'utilise le printemps 3 mvc, l'annotation base.comment stocker les données de session au printemps 3

Je stocke des données de session en utilisant @sessionattribute et @Modelattribute en utilisant des annotations au niveau de la classe et au niveau de la méthode.

Cela fonctionne très bien. MAIS

La requête HTTP attribue des valeurs avec le même nom que l'objet de session attributs sont objet de substitution dans la session.

Comment éviter cela? Maintenant, je dois passer à façon session.getAttribute traditionnelle de la gestion des données de session avec n'est pas impressionnant dans le monde du printemps.

Quelle est la meilleure pratique pour stocker et récupérer des données de session dans les contrôleurs et points de vue?

Une aide?

+0

Pouvez-vous nous donner petit exemple de code « objet de session avec le même nom étant écrasé » et clarifier ce que vous essayez d'atteindre – gerrytan

Répondre

0

Voici ce que mon exemple de code est ... (excusez-moi pour la mauvaise mise en forme ...)

@Controller

@SessionAttributes ({ "utilisateur"})

@RequestMapping ("/ login")

LoginController public class étend SuperController {

@RequestMapping(value = "/submitLogin", method = RequestMethod.POST) 
public ModelAndView login(
     @Valid @ModelAttribute("loginForm") LoginForm loginForm, 
     BindingResult bindingResult, HttpSession session, Model model) { 

        // Adding user object to session after login. 
        modelAndView.addObject("user", user); 

@Controller

@SessionAttributes ({ "suser"})

@RequestMapping ("/ utilisateur")

UserController public class étend SuperController {

@RequestMapping(value = "/createTeamMember", method = RequestMethod.POST) 
public ModelAndView createTeamMember(@Valid @ModelAttribute("userForm"), MemberUserForm memberUserForm, BindingResult bindingResult, @ModelAttribute("user") User user) { 

memberUserForm.getFirstName() ; // Prénom du nouveau membre de l'équipe.

user.getFirstName(); // Prénom de l'utilisateur connecté (pas le même que ci-dessus).

Depuis que je suis en utilisant @sessionAttributes, user.firstName est surchargée avec memberUserForm.getFirstName() au printemps avant d'appeler createTeamMember que je ne l'intention de le faire ....

Questions connexes