Spring MVC Annotation-Based Controller command-Objekt zu verlieren Werte auf POST

Bin ich laden einen user Objekt meiner Berufung zu einem Dienst und speichern Sie dann diesen Benutzer als ein command-Objekt in der Modell ERHALTEN Sie in den controller. Das user-Objekt hat viele Eigenschaften, die nicht zugeordnet werden in die jsp-Seite. Nach dem Absenden des Formulars bekomme ich das command-Objekt, das ich den controller auf POST. Aber seltsam, ich sehe nur die Eigenschaften des command-Objekts, das abgebildet werden, um die jsp-Seite. Alle anderen Eigenschaften waren es, wenn ich laden Sie das Objekt verloren. Ich brauche alle Eigenschaften im Objekt-in der Lage sein, um erfolgreich zu speichern es in die Datenbank.

Kann jemand mir helfen herauszufinden problem? Danke!

Update

Ich bin das hinzufügen einiger code besser zu verstehen. In der POST-handler, erwartete ich das command-Objekt alle Eigenschaften, die geladen wurde, in GET-handler zusätzlich zu den Eigenschaften, die gebunden sind mit jsp. Stattdessen bin ich verlieren alle propeties Ausnahme derjenigen, die gebunden sind an die jsp. Mache ich etwas falsch hier?

@RequestMapping(method = RequestMethod.GET)
    public String showForm(ModelMap model, HttpSession session, HttpServletRequest request) throws Exception {
        UserBean user = Util.getUser(session);
        UserBean command = (UserBean)userProfileService.loadByUserName(user.getUserName());
        model.addAttribute("command", command);
        return formView;
    }

@RequestMapping(method = RequestMethod.POST)
    public String onSubmit(@ModelAttribute("command") UserBean command, BindingResult result, HttpSession session) throws Exception {
     UserBean user = (UserBean) command;
         userProfileService.saveUser(user);
         return "successView";
}

Update

Ich bin das hinzufügen einiger code besser zu verstehen. In der POST-handler, erwartete ich das command-Objekt alle Eigenschaften, die geladen wurde, in GET-handler zusätzlich zu den Eigenschaften, die gebunden sind mit jsp. Stattdessen bin ich verlieren alle propeties Ausnahme derjenigen, die gebunden sind an die jsp. Mache ich etwas falsch hier?

@RequestMapping(method = RequestMethod.GET) public String showForm(ModelMap model, HttpSession session, HttpServletRequest request) throws Exception { UserBean user = Util.getUser(session); UserBean command = (UserBean)userProfileService.loadByUserName(user.getUserName()); model.addAttribute("command", command); return formView; }

@RequestMapping(method = RequestMethod.POST) public String onSubmit(@ModelAttribute("command") UserBean command, BindingResult result, HttpSession session) throws Exception { UserBean user = (UserBean) command; userProfileService.saveUser(user); return "successView"; }

Update

Wenn ich das command-Objekt in der session wie würde der jsp binden die propeties. Ich dachte, ich brauchte, um es zu speichern in Modell?
Könnten Sie bitte erklären.

Update

speichern Sie das command-Objekt in der session löst das problem. Ich war in der Lage, um es zu speichern, indem Sie mit

@SessionAttributes ("command")

Vielen Dank!

Beim hinzufügen von Informationen nicht hinzufügen, eine Antwort. Sie sollten vielmehr Ihre Frage aktualisieren. Ich habe es dieses mal für Sie (sollten Sie jetzt löschen Sie die 'Antwort').

InformationsquelleAutor Mitu | 2010-12-07

Schreibe einen Kommentar