javaEE Web项目 Spring 的国际化异常 No message found

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javaEE Web项目 Spring 的国际化异常 No message found相关的知识,希望对你有一定的参考价值。

这是国际化的配置在springmvc的配置文件中:
<mvc:interceptors>
<bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />
</mvc:interceptors>

<bean id="localeResolver"
class="org.springframework.web.servlet.i18n.SessionLocaleResolver" />

<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="i18n.messages"/>
<property name="useCodeAsDefaultMessage" value="true"/>
</bean>

我的国际化文件:

zh_CN 中内容:
test.title=\u8fd9\u91cc\u662f\u6d4b\u8bd5\u4f7f\u7528\u7684\u6807\u9898\u54e6

JSP页面:
<spring:message code="test.title" />

报错:
No message found under code 'test.title' for locale 'zh_CN'.

求助。。。

参考技术A 我也遇到这个问题了。现在已经解决
解决方法:
application.properties增加配置:如下:
login是你的文件的名字

#国际化配置
spring.messages.basename=i18n/login
#-1 no expried
spring.messages.cache-seconds= -1
spring.messages.encoding=UTF-8
参考技术B spring mvc 配置修改下
bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basenames">
<list>
<value>/WEB-INF/i18n/messages</value>
</list>
</property>
<property name="cacheSeconds" value="0"/>
</bean>追问

对应位置也放了 属性文件了。。 重启依然是那个错误。。

参考技术C 我试过了,是mvc:interceptors的问题追问

何解?

追答

刚才又试了一下,好像不是,你是地址栏直接输jsp的?
我用你的试,没有问题

追问

不是啊,是默认首页,应该是直接jsp的吧
2 没有问题???

追答

我是经过后台,再调到jsp的,直接进jsp也没有问题啊

追问

为什么我这里有错。。对了 我用的maven 不会是这原因吧。。。

追答

我也是maven
我知道了,你不要把messageSource放在mvc的xml里放applicationContext.xml里,问题解决

本回答被提问者采纳
参考技术D 是不是文件没找到?追问

我也有这个感觉,但是这里按照包的位置是对的吧?

javaEE项目启动过程中Spring是怎么一步步执行的?

你这个问题问的不清楚,如果是和其他框架整合,运行过程如下。Spring+struts
1,tomcat启动,创建容器。web.xml是服务器最先调用的文件。
2,然后加载WEB-INF下的web.xml初始化里面内容,
3,spring配置文件初始化,主要是ioc反转控制,和aop切面。spring注入是面向接口编程。
3,因为web.xml初始化了,说明struts过滤器也被创建,下面就可以拦截请求了。
4,页面请求发出,被status拦截送到action,action里面有spring注入接口。可以直接调用方法不需要new 对象。再然后就是业务处理。
下面这是个springMVC单独使用。不用注解的情况下。
与servlet处理请求方式差不多,
参考技术A Spring就是起一个桥梁的作用,简单说下流程吧,就是表示层:页面中发送请求————spring注解,给struts————Struts调用底层代码获得数据后返回数据————spring接受————返回给表示层 在整个流程中数据都存在spring中

以上是关于javaEE Web项目 Spring 的国际化异常 No message found的主要内容,如果未能解决你的问题,请参考以下文章

javaEE中的hibernate配置笔记

Java EE 学习:IDEA + maven + spring 搭建 web- 博客文章管理

清华毕业大佬用了一个项目就把SpringMVC+Spring+MyBatis给讲完了

spring boot 与 thymeleaf : 国际化

JavaEE开发前景如何?

如何在spring sts中获取spring boot web项目的默认结构?