Java tutorial
/* * @(#)UserHandlerMethodArgumentResolver.java $version 2014. 8. 25. * * Copyright 2007 NHN Corp. All rights Reserved. * NAVER Corp. PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */ package com.naver.timetable.resolver; import org.springframework.core.MethodParameter; import org.springframework.web.bind.support.WebDataBinderFactory; import org.springframework.web.context.request.NativeWebRequest; import org.springframework.web.context.request.RequestAttributes; import org.springframework.web.method.support.HandlerMethodArgumentResolver; import org.springframework.web.method.support.ModelAndViewContainer; import com.naver.timetable.model.User; /** * @author younghan */ public class UserHandlerMethodArgumentResolver implements HandlerMethodArgumentResolver { /** * @param parameter * @return * @see org.springframework.web.method.support.HandlerMethodArgumentResolver#supportsParameter(org.springframework.core.MethodParameter) */ @Override public boolean supportsParameter(MethodParameter parameter) { if (parameter.hasParameterAnnotation(SessionUser.class) && User.class.isAssignableFrom(parameter.getParameterType())) { return true; } return false; } /** * @param parameter * @param mavContainer * @param webRequest * @param binderFactory * @return * @throws Exception * @see org.springframework.web.method.support.HandlerMethodArgumentResolver#resolveArgument(org.springframework.core.MethodParameter, org.springframework.web.method.support.ModelAndViewContainer, org.springframework.web.context.request.NativeWebRequest, org.springframework.web.bind.support.WebDataBinderFactory) */ @Override public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception { User user = (User) webRequest.getAttribute("user", RequestAttributes.SCOPE_SESSION); return user; } }