HandlerMethodReturnValueHandler是用于對Controller中函數履行的返回值進行處理操作的,springMVC提供了多個HandlerMethodReturnValueHandler的實現類。
接口HandlerMethodReturnValueHandler定義的抽象方法還是比較簡單的,源碼以下:
(1)supportsReturnType用于判斷是不是支持對返回值的處理。
(2)handleReturnValue實現對返回值的處理操作。
public interface HandlerMethodReturnValueHandler { //判斷是不是支持 boolean supportsReturnType(MethodParameter returnType); //處理返回值操作 void handleReturnValue(Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws Exception; }
public void invokeAndHandle(ServletWebRequest webRequest, ModelAndViewContainer mavContainer, Object... providedArgs) throws Exception { //處理操作的返回值 Object returnValue = invokeForRequest(webRequest, mavContainer, providedArgs); ....... //對返回值進行處理操作 this.returnValueHandlers.handleReturnValue( returnValue, getReturnValueType(returnValue), mavContainer, webRequest); ......... }
具體實現是在HandlerMethodReturnValueHandlerComposite中,HandlerMethodReturnValueHandlerComposite中包括了所有springMVC提供的返回值處理器。
@Override public void handleReturnValue(Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws Exception { //選擇可以處理返回值的處理器 HandlerMe生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
![]()