Ich lade ein Benutzerobjekt mein Aufruf eines Dienstes und dann diesen Benutzer als ein Befehlsobjekt im Modell auf GET in der Steuerung speichern. Dieses Benutzerobjekt verfügt über viele Eigenschaften, die nicht auf der JSP-Seite zugeordnet sind. Nachdem ich das Formular abgeschickt habe, bekomme ich das Befehlsobjekt i den Controller auf POST. Aber seltsamerweise sehe ich nur die Eigenschaften im Befehlsobjekt, die der jsp-Seite zugeordnet sind. Alle anderen Eigenschaften, die beim Laden des Objekts vorhanden waren, gehen verloren. Ich brauche alle Eigenschaften in Objekt, um es in der Datenbank erfolgreich speichern zu können.Spring MVC Annotation Based Controller Befehlsobjekt Verlust von Werten auf POST
Kann mir jemand helfen, dieses Problem zu verstehen? Vielen Dank!
aktualisieren
ich einige Code bin Hinzufügen besser zu verstehen. Im POST-Handler erwartete ich, dass das Befehlsobjekt alle Eigenschaften hat, die zusätzlich zu den Eigenschaften, die mit jsp verbunden sind, in den GET-Handler geladen wurden. Stattdessen verliere ich alle Eigenschaften außer denen, die an die JSP gebunden sind. Mache ich hier etwas falsch?
@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";
}
aktualisieren
ich einige Code bin Hinzufügen besser zu verstehen. Im POST-Handler erwartete ich, dass das Befehlsobjekt alle Eigenschaften hat, die zusätzlich zu den Eigenschaften, die mit jsp verbunden sind, in den GET-Handler geladen wurden. Stattdessen verliere ich alle Eigenschaften außer denen, die an die JSP gebunden sind. Mache ich hier etwas falsch?
@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"; }
aktualisieren
Wenn ich den Befehl Objekt in der Sitzung speichern, wie würde das die propeties jsp zu binden. Ich dachte, ich müsste es im Modell dafür speichern? Könnten Sie bitte erklären.
aktualisieren
den Befehl Objekt in der Sitzung zu speichern, löst das Problem. Ich konnte es mit
@SessionAttributes ("command")
speichern Vielen Dank!
Wenn Informationen Hinzufügen keine Antwort hinzuzufügen. Sie sollten Ihre Frage lieber aktualisieren. Ich habe es diesmal für dich gemacht (du solltest jetzt die 'Antwort' löschen). – Bozho