下面是我的国际化资源文件:
如果想要直接通过超链接访问,则需要在springmvc配置文件中配置国际化资源文件(),这里只有配置,具体想要了解国际化的可以看我的另外一篇博客,这里只重点介绍通过超链接修改国际化语言。
配置国际化资源文件时前提,还需要配置SessionLocalResolver和LocalChangeInterceptor拦截器,想要了解拦截器的可以看我的另外的博客。
<!-- 配置国际化资源文件,配置id需要使用messageSource,具体原因不知道准确的原因,
但我判断是因为框架中使用了messageSource的名字来注入,且获取国际化资源,
应为没有在任何地方配置注入国际化的名称,但也有可能是根据类型来获取,
由于我的springmvc源码了解不够充分,所以这只是个人猜测,没有事实依据
-->
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="i18n"></property>
</bean>
<!-- 配置通过超链接能够改变语言的SessionLocaleResolver与LocaleChangeInterceptor -->
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver"></bean>
<mvc:interceptors>
<bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"></bean>
</mvc:interceptors>
下图是工作原理(图使用了尚硅谷的教学PPT,我的技术都是自学,而自学的资本就是尚硅谷网站上下载的视频(免费的,而且且很齐全),觉得很好,如果你看到了我写的这段话真的就是你赚到了,反正我当初发现了尚硅谷我觉得我赚大了。现在虽然还没有什么成就,但是他们的教学视频很齐全,我现在工作了,任然每天都要看他们的视频,正的很推荐看这篇博客的朋友去尚硅谷官网上看看,真的可以找到你需要的东西。反正就是由衷的感谢尚硅谷这个培训机构,在这里特意把这张ppt里的机构名称截出来了,哈哈哈!):
下面是我的页面中的修改国际化语言的超链接,其中访问的这个链接没有什么,访问的这个链接不是重点,对边一个就可以了,重点是链接后面的参数,locale=zh_CN或locale=en_US,相信看链接就能看出来是什么意思,就不过多解释。
<br><br>
<a href="${pageContext.request.contextPath }/springmvc/testI18n?locale=zh_CN">中文</a>
<br><br>
<a href="${pageContext.request.contextPath }/springmvc/testI18n?locale=en_US">英文</a>
<br><br>