gpt4 book ai didi

java - 如何在每次请求后将对象添加到模型中(Spring Boot)

转载 作者:行者123 更新时间:2023-12-02 09:11:03 25 4
gpt4 key购买 nike

我正在使用 Java 和 Spring Boot 开发一个 Web 应用程序。我想做的是每次收到请求时将一个对象添加到模型中。让我更好地解释一下我在做什么以及为什么需要它。

该应用程序是一个电子商务应用程序,每次加载页面时我都需要了解购物车内的商品数量以及用户收到的通知数量。这些信息显示在网络应用程序所有页面的菜单内。现在,我在页面加载后通过 ajax 调用请求这些信息。我想自动将这些信息添加到模型中,并渲染并返回所有已存在的页面,而无需提出任何进一步的请求。

我用谷歌搜索了一下,发现解决这个问题的一个方法是使用拦截器。我按照 this tutorial 实现了它但唯一的问题是 preHandle、postHandle 和 afterCompletion 不仅会被页面请求调用,还会被其他类型的内容(如图像、视频等)调用。

@Component
public class ProductServiceInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

System.out.println("Pre Handle method is Calling: " + request.getRequestURI());
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {

System.out.println("Post Handle method is Calling");
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception exception) throws Exception {

System.out.println("Request and Response is completed");
}
}

最佳答案

在 WebMvcConfigurerAdapter 中注册拦截器时,您还可以定义要包含或排除的路径模式。

    @Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new YourInterceptor()).excludePathPatterns("/path/to/your/static/resources/*");
}

完整示例可在此处获取:https://www.concretepage.com/spring/spring-mvc/spring-mvc-handlerinterceptor

关于java - 如何在每次请求后将对象添加到模型中(Spring Boot),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59416709/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com