Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring mvc 在序列化之后但在控制器之前拦截@RequestBody_Spring Mvc - Fatal编程技术网

Spring mvc 在序列化之后但在控制器之前拦截@RequestBody

Spring mvc 在序列化之后但在控制器之前拦截@RequestBody,spring-mvc,Spring Mvc,我的请求体对象都实现了一个接口调用Auditable,其中可以设置用户名和lastUpdate时间戳。我想在序列化之后,但在它到达控制器之前拦截对控制器函数的调用,这样我就可以在一个地方保存这些值 我查看了HandlerInterceptor.prehandle,但是这个方法在序列化之前执行。关于如何实现这一点,您有什么建议吗?您可以使用ControllerAdvice,它可以在这些场景中提供帮助。它拦截所有控制器请求,您可以访问方法中的序列化域对象。它几乎可以包含requestMapping方

我的请求体对象都实现了一个接口调用Auditable,其中可以设置用户名和lastUpdate时间戳。我想在序列化之后,但在它到达控制器之前拦截对控制器函数的调用,这样我就可以在一个地方保存这些值


我查看了HandlerInterceptor.prehandle,但是这个方法在序列化之前执行。关于如何实现这一点,您有什么建议吗?

您可以使用ControllerAdvice,它可以在这些场景中提供帮助。它拦截所有控制器请求,您可以访问方法中的序列化域对象。它几乎可以包含requestMapping方法使用的所有参数。希望这有帮助

@ControllerAdvice
public class ControllerAdvisor {

    @ModelAttribute
    public void addAttributes(HttpServletRequest request, HttpServletResponse response,Model model, @RequestBody DomainObject domain) {
        domain.setUserName("test");
        // set other items that you want to do.
    }   

}

你真的很快。