[SPRING] Spring MVC로 메소드 애트리뷰트 (매개 변수)로 세션 속성을 전달하는 법
SPRINGSpring MVC로 메소드 애트리뷰트 (매개 변수)로 세션 속성을 전달하는 법
간단히 말해서, 나는 다음과 같은 것을 원한다.
public String action(@SessionAttribute User user) {..}
대신에
public String action(HttpSession session) {
User user = session.getAttribute("user");
}
주로 다음을 위해서 :
해결법
-
==============================
1.해결책을 찾았습니다.
해결책을 찾았습니다.
아이디어는 @SessionAttribute (또는 @SessionParam)와 같은 사용자 정의 주석을 처리하는 AnnotationMethodHandlerAdapter에 대한 사용자 지정 WebArgumentResolver를 등록하는 것입니다.
거기에 게시 된 코드 중 하나는 값을 지정하지 않으면 param.getParameterName ()을 사용할 수 있다는 것입니다.
-
==============================
2.Google을 통해 도착하는 사용자는 적어도 4.3.2.RELEASE부터 Spring에 @SessionAttribute 주석이 내장되어 있습니다.
Google을 통해 도착하는 사용자는 적어도 4.3.2.RELEASE부터 Spring에 @SessionAttribute 주석이 내장되어 있습니다.
public String action( @SessionAttribute(required=false, name="user") User user) { // ... }
사용자 지정 솔루션은 더 이상 필요하지 않습니다.
-
==============================
3.메서드 매개 변수로 @ModelAttribute ( "user") User 사용자를 사용하고 메소드에서 사용자 객체를 사용하더라도 세션에서 업데이트 된 사용자를 갖게됩니다. 속성 이름은 세션 속성 이름 "user"와 일치해야합니다.
메서드 매개 변수로 @ModelAttribute ( "user") User 사용자를 사용하고 메소드에서 사용자 객체를 사용하더라도 세션에서 업데이트 된 사용자를 갖게됩니다. 속성 이름은 세션 속성 이름 "user"와 일치해야합니다.
public String myMethod( @ModelAttribute("user") User user ){ System.out.println(user.getDetails()); }
from https://stackoverflow.com/questions/3621266/how-to-pass-a-session-attribute-as-method-argument-parameter-with-spring-mvc by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Java 런타임에서 낙타 경로 추가 (0) | 2018.12.24 |
---|---|
[SPRING] "파일 이름"부분에 여러 점이있는 REST-ful URL 만들기 - Spring 3.0 MVC (0) | 2018.12.24 |
[SPRING] 현재 스레드에 대한 세션이 없습니다 (Spring 3.1.X 및 Hibernate 4). (0) | 2018.12.24 |
[SPRING] 양식이있는 봄 mvc 날짜 형식 : 입력 (0) | 2018.12.24 |
[SPRING] Tiles view (JSP)에서 Spring 빈에 접근하기 (0) | 2018.12.24 |