0
檢索的ModelAttribute

我有一個擴展HandlerInterceptorAdapter類:如何從HandlerInterceptorAdapter

public class AreaRiservataInterceptorAdapter extends HandlerInterceptorAdapter {   
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception 
    {} 
} 

我需要它,因爲我不得不「編輯」的對象Utente,您可以在此控制器參數見;與HandlerInterceptorAdapter我攔截該請求之前,被髮送到該控制器

@Controller 
    public class AreaRiservata{ 
    @RequestMapping("/prv/areaRiservataPost") 
     public String areaRiservataPost(Model model, Utente utente){} 
    } 

正如我以前告知,我必須的「編輯」的方法,其延伸HandlerInterceptorAdapter類的preHandle內的對象Utente。 我不明白我在哪裏可以檢索對象Utente。 來自請求?形式Object handler

postHandle方法中很容易做到這一點,因爲我可以從參數ModelAndView中得到它,但我不知道如何在preHandle內執行此操作。

謝謝

回答

1

#preHandle方法將被調用之前的說法Utente將解組,並傳遞給#areaRiservataPost

看到彈簧webmvc-3.2.8.RELEASE-sources.jar /org/springframework/web/servlet/DispatcherServlet.java:919

和org.springframework.web.method.support。 InvocableHandlerMethod#getMethodArgumentValues

因此,您無法對尚未創建的對象生效。但是,你可以從請求獲取數據:

Scanner s = new Scanner(request.getInputStream(), "UTF-8").useDelimiter("\\A"); 
s.hasNext() ? s.next() : ""; 

解組,然後把對象Utenterequest這將是那麼檢索和#areaRiservataPost

使用
相關問題