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);
}
}
Spring-mvc 3.2 ServletAPI
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.