我有一个扩展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){}
}
正如我之前所说,我必须在扩展Utente
的类的方法preHandle
内“编辑”对象HandlerInterceptorAdapter
。
我不明白我可以在哪里找回对象Utente
。
从请求?表格Object handler
?
在方法postHandle
中很容易实现,因为我可以从参数ModelAndView
获取它,但我不知道如何在preHandle
内完成。
谢谢
答案 0 :(得分:1)
#preHandle
被解组并传递给Utente
之前,将调用 #areaRiservataPost
方法。
参见spring-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() : "";
取消编组,然后将对象Utente
放入request
,然后在#areaRiservataPost