【问题标题】:Intercept @RequestBody after serialization but before controller在序列化之后但在控制器之前拦截 @RequestBody
【发布时间】:2015-06-18 19:44:25
【问题描述】:

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

我查看了HandlerInterceptor.prehandle,但此方法在序列化之前执行。关于如何实现这一点的任何建议?

【问题讨论】:

  • 你真的很快。

标签: spring-mvc


【解决方案1】:

您可以使用 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.
    }   

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-21
    • 1970-01-01
    • 2013-04-10
    • 2022-08-23
    • 1970-01-01
    • 2016-08-05
    • 1970-01-01
    • 2019-08-08
    相关资源
    最近更新 更多