Код, который вы показали , должен работать - HttpSession
совместно используется контроллерами, и вы используете одно и то же имя атрибута. Таким образом, что-то еще идет не так, что вы нам не показываете.
Однако независимо от того, работает он или нет, Spring предоставляет более элегантный подход к сохранению объектов модели в сеансе, используя аннотацию @SessionAttribute
(см. docs ).
Например (я не проверял это, но это дает вам идею):
@Controller
@RequestMapping("/welcome.htm")
@SessionAttributes({"user"})
public class WelcomeController {
@RequestMapping(method = RequestMethod.POST)
public String processSubmit(ModelMap modelMap){
User user = loginService.loginUser(loginCredentials);
modelMap.addtAttribute(user);
return "loginSuccess";
}
}
, а затем
@Controller
@SessionAttributes({"user"})
public class InspectionTypeController {
@RequestMapping(value="/addInspectionType.htm", method = RequestMethod.POST )
public void addInspectionType(InspectionType inspectionType, @ModelAttribute User user) {
System.out.println("User: "+ user.getUserDetails().getFirstName);
}
}
Однако, если ваш исходный код не работает, он тоже не будет работать, поскольку в вашем сеансе что-то не так.