基于 Spring MVC LocaleChangeInterceptor 注解不起作用

2023-11-21

import java.util.Locale;

import org.springframework.context.MessageSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.support.ReloadableResourceBundleMessageSource;
import org.springframework.web.servlet.HandlerMapping;
import org.springframework.web.servlet.LocaleResolver;
import org.springframework.web.servlet.i18n.CookieLocaleResolver;
import org.springframework.web.servlet.i18n.LocaleChangeInterceptor;
import org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping;

@Configuration
public class Config {
    @Bean
    public LocaleResolver localeResolver() {
        final CookieLocaleResolver ret = new CookieLocaleResolver();
        ret.setDefaultLocale(new Locale("en_US"));
        return ret;
    }

    @Bean
    public MessageSource messageSource() {
        final ReloadableResourceBundleMessageSource ret = new ReloadableResourceBundleMessageSource();
        ret.setBasename("classpath:lang");
        ret.setDefaultEncoding("UTF-8");
        return ret;
    }

    @Bean
    public HandlerMapping handlerMapping() {
        final LocaleChangeInterceptor interceptor = new LocaleChangeInterceptor();
        interceptor.setParamName("language");

        final DefaultAnnotationHandlerMapping ret = new DefaultAnnotationHandlerMapping();
        ret.setInterceptors(new Object[] { interceptor });
        return ret;
    }
}

以上是我的注解配置。我基本上已经翻译了this教程的 XML。

奇怪的是,当我去时它不起作用...?language=fr.

然而,以下确实有效(在app-servlet.xml)(注意这里使用的是locale):

<mvc:interceptors>
    <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
        <property name="paramName" value="locale" />
    </bean>
</mvc:interceptors>

另一件需要注意的重要事情是,当我在上述方法上放置断点时,所有这三个方法中的每个断点都会中断,这意味着“某人”正在读取这些值。

那么,为什么我的基于注释的拦截器不起作用?


扩展配置类WebMvcConfigurerAdapter可能有帮助。 添加拦截器条目覆盖

public void addInterceptors(InterceptorRegistry registry) {
   registry.addInterceptor(localeChangeInterceptor());
} 

方法。 还添加 bean 条目LocaleChangeInterceptor

@Bean 
public LocaleChangeInterceptor localeChangeInterceptor(){
    LocaleChangeInterceptor localeChangeInterceptor=new LocaleChangeInterceptor();
    localeChangeInterceptor.setParamName("language");
    return localeChangeInterceptor;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于 Spring MVC LocaleChangeInterceptor 注解不起作用 的相关文章

随机推荐

  • OpenGL ES - 如何绘制填充多边形?

    我尝试在堆栈上进行谷歌搜索和搜索 但没有找到任何东西 在 OpenGL ES 中将不规则形状或其他多边形 卡通 精灵 映射到三角形 我想绘制一个填充多边形OpenGL ES在 iPad 上 2D 不需要 3D 我是 OpenGL OpenG
  • 将 HTML 文本同步并突出显示为音频

    如果有必要 我可以更详细地解释 但本质上我需要做的是与音轨同步对 HTML 文本进行 CSS 更改 即与音频播放同步突出显示单词 短语 我还需要通过单击文本来控制音频播放 我有很好的 HTML CSS 能力 但我对原始 js 不太擅长 所以
  • SonataAdminBundle - 检查“preUpdate”挂钩中的更改

    是否可以检查字段是否已更改preUpdate钩 我正在寻找类似的东西preUpdate hasChangedField fieldName 教义功能 有任何想法吗 这个问题有点类似于this one 您的解决方案只是将旧对象的字段与新对象的
  • Bootstrap & LESS:导入 mixins 仅作为参考

    我正在使用 Bootstrap 3 0 和 LESS 1 5 我将为许多网站使用相同的 bootstrap css 或使用他们的 CDN 所以我正在使用 import reference bootstrap 3 0 0 less boots
  • PHP 忽略我的 max_execution_time

    我的脚本中有一些关于使用 ffmpeg 转换视频的任务 我使用 codeigniter 2 0 3 执行此操作 并在库中找到脚本并使用 shell exec 运行 ffmpeg 我的 php 脚本中有 3 个任务 上传文件 将视频转换为 f
  • 在 ASP.NET Core Web API 中上传文件和 JSON

    如何使用分段上传将文件 图像 和 json 数据列表上传到 ASP NET Core Web API 控制器 我可以成功收到上传的文件列表multipart form data像这样的内容类型 public async Task
  • jQuery 如果 div 包含此文本,则替换该文本部分

    就像标题所说 我想替换div中文本的特定部分 结构如下 div class text div This div contains some text div 例如 我只想将 包含 替换为 大家好 我无法找到解决方案 您可以使用text方法并
  • 滚动视图中的列表视图我的滚动视图移动到列表视图的顶部。我该如何防止这种情况?

    在此之前 我的滚动视图中有一个列表视图 位于几乎一页滚动的下方 但是一旦我的列表视图被填充 滚动视图就会移动到列表视图的顶部 我该如何解决这个问题 防止这种情况发生 滚动查看 XML
  • 为什么在 Zapier 中使用此代码时会收到 Runtime.MarshalError?

    以下代码给了我 Runtime MarshalError 无法封送响应 Yes 不是 JSON 可序列化 from calendar import monthrange def time remaining less than fourte
  • 如何将新列添加到现有的德鲁伊架构中?

    我创建了一个架构 并将 1TB 数据添加到德鲁伊架构中 然后日志文件版本升级并添加新的两列 然后我想将该数据添加到德鲁伊架构中 但还不能 为了向现有数据源添加新列 您需要执行以下步骤 前往Tasks德鲁伊控制台中的菜单 从列出的数据源中 转
  • 将 ISO 日期转换为 yyyy-mm-dd 格式

    给定集合 name users 结构 id ObjectId 57653dcc533304a40ac504fc username XYZ followers count 31 ts ISODate 2016 06 17T18 30 00 9
  • KMeans 聚类超过 500 万个向量

    我遇到了一个真正的问题 我需要对 500 万个向量进行一些 Kmeans 聚类 每个向量包含大约 32 列 我尝试了 Mahout 它需要 Linux 而我在 Windows 上 我无法使用 Linux 操作系统和任何类型的模拟器 谁能建议
  • Console.Write() - 显示扩展 ascii 字符?

    我能够正确显示标准 ASCII 符号 最多 127 个 例如 heart note 你知道我的意思 我还想展示那些可以用来画墙的东西 比如 U0205 但它不起作用 好吧 它起作用 但它看起来像 我有什么办法可以显示它们吗 谢谢 控制台模式
  • Ruby 错误地解析了 2 位数字年份

    Ruby 正确解析第一个日期 但第二个日期不正确 使用 ruby 1 9 3 和 2 1 2 进行测试 知道如何让它持续工作吗 我们将出生日期设为两位数年份 Date strptime 10 11 89 d m y gt Fri 10 No
  • 如何声明也符合协议的特定类的属性?

    假设我想创建一个属性 它是 UIViewController 的子类 并且也符合协议 MyDelegateProtocol 在 Objective C 中我会写这样的东西 property strong nonatomic UIViewCo
  • 如何在Java中使用自动代理配置脚本

    我的 Internet Explorer 设置为具有用于 Web 访问的自动代理文件 所谓的 PAC 有没有办法在我的 Java 程序上使用它 我的下面的Java代码似乎根本没有使用代理 ArrayList
  • 如何在 R 中指定 3d 绘图的相机视角?

    我想更改我的plotly 3d 散点图的默认相机视角 但从帮助中不清楚应该如何完成此操作 我知道布局参数应包含在命名列表中 但无法使其适用于 眼睛 向上 和 中心 相机参数 https plot ly r reference layout
  • 在 gradle 中将参数传递给编译器和 javadoc

    我正在尝试提供 Gradle 作为现有项目的替代构建系统 该项目利用sun misc Unsafe这会导致像这样的警告 warning Unsafe is internal proprietary API and may be remove
  • git:如何将拉取请求合并到分支中?

    我的情况如下 我有一个开源 github 项目的分支 我在开发分支的分支中的分叉存储库中进行所有开发 在主存储库的开发分支中有一个我需要的未合并的拉取请求 为了测试未合并的拉取请求 我创建了一个新目录并将原点克隆到其中 然后将未合并的请求提
  • 基于 Spring MVC LocaleChangeInterceptor 注解不起作用

    import java util Locale import org springframework context MessageSource import org springframework context annotation B