利用AnnotationMethodHandlerAdapter对Spring的Controller注入session对象2011-10-21 blogjava 沉睡森林在利用spring的mvc开发过程中,需要将User对象从session中取出来使用。参照网上的做法,我利用 了AnnotationMethodHandlerAdapter来解决这个问题。下面是XML代码,放到web-inf下面的springMVC配 置文件中:
<bean id="userArgumentResolver" class="com.greatwall.module.yhqxgl.interceptor.UserArgumentResolver" /> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" > <property name="customArgumentResolver"> <ref bean="userArgumentResolver"/> </property> </bean>
下面是java代码:
package com.greatwall.module.yhqxgl.interceptor;import org.springframework.core.MethodParameter;import org.springframework.web.bind.support.WebArgumentResolver;import org.springframework.web.context.request.NativeWebRequest;import org.springframework.web.context.request.RequestAttributes;import com.greatwall.module.yhqxgl.YhqxglConstants;import com.greatwall.module.yhqxgl.domain.User;public class UserArgumentResolver implements WebArgumentResolver { public Object resolveArgument(MethodParameter methodParameter, NativeWebRequest webRequest) throws Exception { if (methodParameter.getParameterType().equals(User.class)) { return webRequest.getAttribute(YhqxglConstants.GREATWALL_SESSION_USER, RequestAttributes.SCOPE_SESSION); } return UNRESOLVED; }}