2010-08-19 8 views
0

J'ai un objet de domaine avec 5 propriétés. Je précharge l'objet dans ma méthode GET et affiche juste l'une des propriétés dans le formulaire. Lorsque le formulaire est soumis, l'objet contient uniquement une propriété avec valeur. Comment puis-je obtenir les propriétés restantes et leurs valeurs sans mettre une variable cachée pour chaque propriété dans mon formulaire.spring mvc annotation - objet valeurs manquantes sur le poste

Répondre

3

Si vous ne souhaitez pas stocker les propriétés dans les champs hidden, vous pouvez stocker votre objet dans la session. Au printemps 3, ceci peut être fait de manière déclarative avec @SessionAttribute annotation:

@Controller @RequestMapping("/editBar") 
// Specifiy the name of the model attribute to be stored in the session 
@SessionAttribute("bar")  
public class BarController { 

    @RequestMapping(method = GET) 
    public String form(Map<String, Object> model) { 
     model.put("bar", ...); 
     ... 
    } 

    @RequestMapping(method = POST) 
    public String submit(@ModelAttribute("bar") Bar bar, BindingResult errors, 
     SessionStatus status) { 
     if (!errors.hasErrors()) { 
      status.setComplete(); // Clear the session after successful submit 
      ... 
     } ... 
    } 
} 
Questions connexes