사용자 도구

사이트 도구


springframework:mvc:handlermethodargumentresolver

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판
이전 판
springframework:mvc:handlermethodargumentresolver [2012/03/08 13:33]
kwon37xi 새로 만듦
springframework:mvc:handlermethodargumentresolver [2016/06/16 11:25] (현재)
kwon37xi [적용]
줄 4: 줄 4:
   * [[http://blog.42.nl/articles/leveraging-the-spring-mvc-3.1-handlermethodargumentresolver-interface|42 B.V.: Leveraging the Spring MVC 3.1 HandlerMethodArgumentResolver interface]]   * [[http://blog.42.nl/articles/leveraging-the-spring-mvc-3.1-handlermethodargumentresolver-interface|42 B.V.: Leveraging the Spring MVC 3.1 HandlerMethodArgumentResolver interface]]
  
 +===== 구현 =====
 +  * ''public boolean supportsParameter(MethodParameter parameter)'' : Resolver가 해당 파라미터에 적용 가능한지 여부를 검사하여 true/false 리턴
 +  * ''Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception'' : 파라미터 인자와 기타 정보등을 통해서 실제 객체를 생성하여 리턴하면 해당 객체가 컨트롤러 메소드의 인자로 들어가게 된다.
  
 +===== 적용 =====
 +<code xml>
 +<mvc:annotation-driven>
 +    <mvc:argument-resolvers>
 +        <bean class="kr.pe.kwonnam.someproject.LoginUserHandlerMethodArgumentResolver"/> <!--일반 Bean 주입 -->
 +    </mvc:argument-resolvers>
 +</mvc:annotation-driven>
 +</code>
 +혹은 java-config에서
 +<code java>
 +@Override
 +protected void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
 +    super.addArgumentResolvers(argumentResolvers);
 +    argumentResolvers.add(myArgumentResolver());
 +    // ....
 +}
 +</code>
 +===== MethodParameter =====
 +  * [[http://static.springsource.org/spring/docs/3.1.x/javadoc-api/org/springframework/core/MethodParameter.html|MethodParameter]]
 +  * 지정된 파라미터에 대한 각종 정보와 어노테이션 등을 읽어올 수 있다.
 +===== ModelAndViewContainer =====
 +  * [[http://static.springsource.org/spring/docs/3.1.x/javadoc-api/org/springframework/web/method/support/ModelAndViewContainer.html|ModelAndViewContainer]]
 +
 +===== NativeWebRequest =====
 +  * [[http://static.springsource.org/spring/docs/3.1.x/javadoc-api/org/springframework/web/context/request/NativeWebRequest.html|NativeWebRequest]] : HttpServletRequest를 확보할 수 있다.
 +  * PathVariable 읽기
 +<code java>
 +HttpServletRequest httpServletRequest = webRequest.getNativeRequest(HttpServletRequest.class);
 +Map<String,String> pathVariables = (Map<String, String>) httpServletRequest.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE);
 +// pathVariables 맵에 정보가 저장 됨.
 +</code>
 +
 +===== WebDataBinderFactory =====
 +  * [[http://static.springsource.org/spring/docs/3.1.x/javadoc-api/org/springframework/web/bind/support/WebDataBinderFactory.html|WebDataBinderFactory]]
  
springframework/mvc/handlermethodargumentresolver.1331181204.txt.gz · 마지막으로 수정됨: 2012/03/08 13:33 저자 kwon37xi