[SPRING] 봄 @SessionAttribute 어떻게 동일한 컨트롤러에서 세션 개체를 검색합니다
SPRING봄 @SessionAttribute 어떻게 동일한 컨트롤러에서 세션 개체를 검색합니다
나는 봄 3.2.0 MVC를 사용하고 있습니다. 그 나는 세션에 하나 개의 객체를 저장해야합니다. 현재 내가 설정의 HttpSession을 이용하고 저장하고 값을 검색 할 속성을 얻을.
그것은 단지 문자열 객체를 돌려줍니다. 나는 그것을 세션에서 개체를 설정하려고 할 때 @SessionAttribute을 사용하고 싶지만 내가 세션 객체를 검색 할 수 없습니다
@RequestMapping(value = "/sample-login", method = RequestMethod.POST)
public String getLoginClient(HttpServletRequest request,ModelMap modelMap) {
String userName = request.getParameter("userName");
String password = request.getParameter("password");
User user = sample.createClient(userName, password);
modelMap.addAttribute("userObject", user);
return "user";
}
@RequestMapping(value = "/user-byName", method = RequestMethod.GET)
public
@ResponseBody
String getUserByName(HttpServletRequest request,@ModelAttribute User user) {
String fas= user.toString();
return fas;
}
두 가지 방법 모두 동일한 컨트롤러에 있습니다. 어떻게 개체를 검색하려면이 옵션을 사용해야합니까?
해결법
-
==============================
1.@SessionAttributes 어노테이션을 클래스 레벨에 사용된다 :
@SessionAttributes 어노테이션을 클래스 레벨에 사용된다 :
그래서 당신은이 예제에서처럼 @ModelAttribute 주석과 함께 사용할 수 있습니다 :
@Controller @RequestMapping("/counter") @SessionAttributes("mycounter") public class CounterController { // Checks if there's a model attribute 'mycounter', if not create a new one. // Since 'mycounter' is labelled as session attribute it will be persisted to // HttpSession @RequestMapping(method = GET) public String get(Model model) { if(!model.containsAttribute("mycounter")) { model.addAttribute("mycounter", new MyCounter(0)); } return "counter"; } // Obtain 'mycounter' object for this user's session and increment it @RequestMapping(method = POST) public String post(@ModelAttribute("mycounter") MyCounter myCounter) { myCounter.increment(); return "redirect:/counter"; } }
또한 일반적인 noobie의 함정을 잊지 말라 : 당신이 당신의 세션이 직렬화 객체 있는지 확인합니다.
from https://stackoverflow.com/questions/17722641/spring-sessionattribute-how-to-retrieve-the-session-object-in-same-controller by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 봄의 데이터를 MongoRepository와 쿼리 주석을 사용하는 동안 쿼리를 표시하는 방법 (0) | 2019.10.18 |
---|---|
[SPRING] ComponentScan.basePackages 대 ComponentScan.basePackageClasses는 하나의 봄 webMVC 컨트롤러를 등록? (0) | 2019.10.18 |
[SPRING] 일반 JSON 봄 데이터 REST (안 HAL 형식) (0) | 2019.10.17 |
[SPRING] 봄 부팅에 TransientPropertyValueException (0) | 2019.10.17 |
[SPRING] + @Transactional 주위에 사용자 정의 스프링 AOP (0) | 2019.10.17 |