JavaSpringMVC在页面上显示之前修改输出流
在Spring将输出内容刷新到页面之前,有没有合适的方法修改输出内容?当内容准备好后,我需要运行一个正则表达式来修复一级的所有链接 假设我使用拦截器,如何获取渲染内容、修改内容并将其设置回原处JavaSpringMVC在页面上显示之前修改输出流,java,spring,interceptor,Java,Spring,Interceptor,在Spring将输出内容刷新到页面之前,有没有合适的方法修改输出内容?当内容准备好后,我需要运行一个正则表达式来修复一级的所有链接 假设我使用拦截器,如何获取渲染内容、修改内容并将其设置回原处 public class SpringControllerInterceptor extends HandlerInterceptorAdapter { @Override public void postHandle(HttpServletRequest request, HttpSe
public class SpringControllerInterceptor extends HandlerInterceptorAdapter {
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
System.out.println("postHandle");
}
}
你可以添加一个
过滤器层来处理你的响应,你可以抓取整个响应体并处理你想要的链接你可以添加一个过滤器层来处理你的响应,你可以抓取整个响应体并处理你想要的链接Spring MVC拦截器就是这样做的方法之一。重写方法以更新http响应对象
void postHandle(HttpServletRequest request,
HttpServletResponse response,
Object handler,
ModelAndView modelAndView)
throws Exception
拦截处理程序的执行。在HandlerAdapter实际调用处理程序之后调用,但在DispatcherServlet呈现视图之前调用
阅读更多:
SpringMVC拦截器将是实现这一点的方法之一。重写方法以更新http响应对象
void postHandle(HttpServletRequest request,
HttpServletResponse response,
Object handler,
ModelAndView modelAndView)
throws Exception
拦截处理程序的执行。在HandlerAdapter实际调用处理程序之后调用,但在DispatcherServlet呈现视图之前调用
阅读更多:
让我猜猜。。。如果stackoverflow允许这么短的答案,你会回答“是的”。让我猜猜。。。如果stackoverflow允许这么短的回答,您会回答“是”。对,但在拦截器中如何获取实际呈现的内容,修改它并将其设置回?为此,您可能必须扩展类HttpServletResponseWrapper
,并在更新和发送到客户端之前使用装饰器模式获取内容。请参阅示例代码:@ViralPatel不幸的是,这种装饰器模式方法在我的案例中不起作用。我在这个问题上倾诉了我的不幸。您能提出一些建议吗?好的,但在拦截器内部,如何获取实际呈现的内容、修改内容并将其设置回原处?为此,您可能需要扩展类HttpServletResponseWrapper
,并在更新和发送到客户端之前使用decorator模式获取内容。请参阅示例代码:@ViralPatel不幸的是,这种装饰器模式方法在我的案例中不起作用。我在这个问题上倾诉了我的不幸。你能提出一些建议吗?