我有一个扩展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
内部进行。谢谢
最佳答案
在解组参数#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
中使用关于java - 如何从HandlerInterceptorAdapter检索modelAttribute,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35364177/