Ich möchte Login-Nachricht an eine andere Methode teilen, aber weiß nicht wie. So habe ichKann ModelMap nicht zur Sitzung hinzufügen
Feder Anmerkung @SessionAttributes
in Controller und versuchen addAttribute
zu
speichern user
zu ModelMap
. Aber wenn ich @ModelAttribute
in einem anderen Verfahren verwendet,
meinem Browser geworfen: 500 - Expected session attribute 'user'
Hier ist mein Controller:
@Controller
@RequestMapping("/login")
@SessionAttributes("user")
public class Login {
@Resource
private UserSer userSer;
@RequestMapping("/main")
@ResponseBody
public String login (@RequestBody User user, ModelMap map) {
boolean result = userSer.login(user);
String view = "fail";
if(result) {
map.addAttribute("user", user);
view = "success";
}
return view;
}
//It doesn't work
@RequestMapping("/logout")
public String logout(@ModelAttribute("user") User user) {
System.out.println(user.getUsername());
return "success";
}
}
Muss ich web.xml konfigurieren.
Es hat funktioniert, aber ich muss etwas Code in '$ .ajax' hinzufügen. Kann ich Modelattribute und '@ ResponseBody' gleichzeitig verwenden? Ist es möglich. –
Ich habe deine Frage nicht bekommen. Was willst du erreichen? – abaghel
Wenn ich "@ ResponseBody" verwende, kann ich meinen "Benutzer" im Session-Objekt speichern? –