【问题标题】:Spring MVC 3: Find out locale within a filterSpring MVC 3:找出过滤器中的语言环境
【发布时间】:2011-11-25 18:07:52
【问题描述】:

环境: 在我的 Spring MVC 3.0.5 应用程序中,我尝试使用此处描述的过滤器添加缓存、html 压缩和其他一些东西:http://onjava.com/pub/a/onjava/2003/11/19/filters.html?page=3

问题: 这可行,但不幸的是我无法弄清楚当前的 Spring MVC 语言环境,因为过滤器在 Spring MVC 及其 CookieLocaleResolver、LocaleChangeInterceptor 等启动之前启动。

解决方案?: 是否有一种解决方法来获取语言环境,或者是否有人知道一个好的 Spring 内置替代过滤器(例如,在请求进入任何控制器之前启动并在处理 JSP 形式的视图后结束的拦截器)

【问题讨论】:

    标签: spring model-view-controller filter locale interceptor


    【解决方案1】:

    有很多 spring 替代方案,比如已经内置过滤器来设置 http 缓存标头(如果这是您正在寻找的)。 (例如 AbstractCachingViewResolver,或WebContentInterceptor

    无论如何:Spring 提供了HandlerInterceptor Interface。这是您要求的那种拦截器。它们只是在<mvc:interceptors> 标签内定义的。

    @见Spring Reference: Chapter 15.4.1 Intercepting requests - the HandlerInterceptor interface

    另请参阅有关拦截器的一些 Stack Overflow 问题。

    还有这个Blog: Spring MVC 3.0 annotations and HTTP/1.1 Cache-Control headers 举例说明如何配置拦截器(网页内容拦截器)。

    【讨论】:

    • 在深入研究拦截器时,我什至找不到一个如何使用 HandlerInterceptor.afterCompletion() 的示例,这似乎正是我想要的。谁能建议如何从给定的响应对象中提取生成的 html 正文?
    猜你喜欢
    • 2014-09-15
    • 1970-01-01
    • 2016-07-13
    • 1970-01-01
    • 2014-04-26
    • 2015-08-03
    • 2012-01-21
    • 1970-01-01
    • 2014-04-18
    相关资源
    最近更新 更多