如何从 HandlerInterceptorAdapter 检索 modelAttribute

How to retrieve a modelAttribute from HandlerInterceptorAdapter

我有一个 class 扩展 HandlerInterceptorAdapter:

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

我需要它,因为我必须 "edit" 对象 Utente,您可以将其视为此控制器中的参数;使用 HandlerInterceptorAdapter 我在将请求发送到此控制器之前拦截请求

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

正如我之前所说,我必须 "edit" 扩展 HandlerInterceptorAdapter 的 class 的方法 preHandle 中的对象 Utente。 我不明白在哪里可以检索对象 Utente。 从要求?表格 Object handler?

在方法postHandle中很容易做到,因为我可以从参数ModelAndView中得到它,但我不知道如何在preHandle中做到。

谢谢

#preHandle 方法将在参数 Utente 被解组并传递给 #areaRiservataPost.

之前被调用

see spring-webmvc-3.2.8.RELEASE-sources.jar!/org/springframework/web/servlet/DispatcherServlet.java:919

and org.springframework.web.method.support.InvocableHandlerMethod#getMethodArgumentValues

因此,您不能影响尚未创建的对象。但是,您可以从请求中获取数据:

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

解组,然后将对象 Utente 放入 request 中,然后在 #areaRiservataPost

中检索并使用该对象