Spring-mvc 3.2 ServletAPI


protected Object resolveStandardArgument(Class parameterType, NativeWebRequest webRequest)
            throws Exception
        {
            HttpServletRequest request = (HttpServletRequest)webRequest.getNativeRequest(javax/servlet/http/HttpServletRequest);
            HttpServletResponse response = (HttpServletResponse)webRequest.getNativeResponse(javax/servlet/http/HttpServletResponse);
            if(javax/servlet/ServletRequest.isAssignableFrom(parameterType) || org/springframework/web/multipart/MultipartRequest.isAssignableFrom(parameterType))
            {
                Object nativeRequest = webRequest.getNativeRequest(parameterType);
                if(nativeRequest == null)
                    throw new IllegalStateException((new StringBuilder()).append("Current request is not of type [").append(parameterType.getName()).append("]: ").append(request).toString());
                else
                    return nativeRequest;
            }
            if(javax/servlet/ServletResponse.isAssignableFrom(parameterType))
            {
                responseArgumentUsed = true;
                Object nativeResponse = webRequest.getNativeResponse(parameterType);
                if(nativeResponse == null)
                    throw new IllegalStateException((new StringBuilder()).append("Current response is not of type [").append(parameterType.getName()).append("]: ").append(response).toString());
                else
                    return nativeResponse;
            }
            if(javax/servlet/http/HttpSession.isAssignableFrom(parameterType))
                return request.getSession();
            if(java/security/Principal.isAssignableFrom(parameterType))
                return request.getUserPrincipal();
            if(java/util/Locale.equals(parameterType))
                return RequestContextUtils.getLocale(request);
            if(java/io/InputStream.isAssignableFrom(parameterType))
                return request.getInputStream();
            if(java/io/Reader.isAssignableFrom(parameterType))
                return request.getReader();
            if(java/io/OutputStream.isAssignableFrom(parameterType))
            {
                responseArgumentUsed = true;
                return response.getOutputStream();
            }
            if(java/io/Writer.isAssignableFrom(parameterType))
            {
                responseArgumentUsed = true;
                return response.getWriter();
            } else
            {
                return super.resolveStandardArgument(parameterType, webRequest);
            }
        }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章