spring做国际化时经常会报:

org.springframework.context.NoSuchMessageException: No message found under code 'userlogin' for locale 'zh_CN'.

at org.springframework.context.support.DelegatingMessageSource.getMessage(DelegatingMessageSource.Java:65)

at org.springframework.context.support.AbstractApplicationContext.getMessage(AbstractApplicationContext.java:646)

at com.neusoft.Test.Test.main(Test.java:43)

Exception in thread "main"

这样的错误。

总结一下,有可能由以下原因造成:

1.如果你使用eclipse创建的工程是class和src分开的,那么资源属性文件一定要放在src目录以内

2.属性文件名的写法:

messages_zh_CN.properties  (中文)

messages_en_US.properties  (英文)

3.配置messageSource这个bean(注意:一定是messageSource不是messageResource ,这是Spring规定的)

<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">

<property name="basenames">

<list>

<value>messages</value>

</list>

</property>

</bean>

还有一个要注意的是.如果你的资源文件不是在根目录下而在com.wzw.messages.messages目录下的话,你就应该这样配置了:

<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">

  <property name="basenames">

   <list>

    <value>com.wzw.messages.messages</value>

   </list>

  </property>

 </bean>

PS:1  我一开始做spring 国际化的时候也遇到了这个问题,花了差不多一个小时才找到问题根源:如果你使用eclipse建的工程是class和src分开的,那么资源属性文件一定要放在src目录以内,如果创建资源文件时候是通过工程右键创建,那么myeclipse默认是放在WebRoot并列的根文件夹下

 
2,属性文件名不一定要是message或是messages,可以根据自己爱好随意取,但是记住一定要在配置文件(**.xml)文件中的<value>???</value>中填入自己取好的名字,比如新建一个资源文件alias_zh_CN.properties,那么配置文件应该这么写:<value>alias</value>,我亲自试过,是可行的.

3 ,这篇文章是转载自新浪博客,本意是让初学者少走弯路,原文URL:http://blog.sina.com.cn/s/blog_4cab775e01000a14.html

我出现这个异常的原因是因为我的配置文件不是在根目录下,如图:

但是我的配置如下:

<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">

<property name="basenames">

<list>

<value>messages</value>

</list>

</property>

</bean>

只需要把配置文件改为如下就可以了:

这个问题费了我不少时间,以此文谨记。

关于Spring 国际化 No message found under code 的解决方案的更多相关文章

  1. 关于国际化时报org.springframework.context.NoSuchMessageException错,具体到No message found under code '你的键名' for locale 'zh_CN'.的解决方案

    使用IntelliJ IDEA开发工具解决方案: 总结原因,解决方案: 1,在使用messageSource.getMessage方法时,参数1的键名跟属性文件中键名不一致,比如Controller中 ...

  2. Spring国际化

    国际化(Internationalization)有时候被简称为i18n,因为有18个字母在国际化的英文单词的字母i和n之间.Spring对国际化的支持示例如下所示. 需要将spring.tld放到工 ...

  3. 解决org.springframework.context.NoSuchMessageException: No message found under code 'login.validate.er

    转自:https://blog.csdn.net/steveguoshao/article/details/36184971 在项目中遇到 org.springframework.context.No ...

  4. 深入理解spring国际化

    深入理解spring国际化 转自http://blog.csdn.net/ethan_fu/article/details/45621337

  5. Spring源码分析之循环依赖及解决方案

    Spring源码分析之循环依赖及解决方案 往期文章: Spring源码分析之预启动流程 Spring源码分析之BeanFactory体系结构 Spring源码分析之BeanFactoryPostPro ...

  6. Spring Cloud:面向应用层的云架构解决方案

    Spring Cloud:面向应用层的云架构解决方案 上期文章我们介绍了混合云,以及在实际操作中我们常见的几种混合云模式.今天我们来聊一聊Spring Cloud如何解决应用层的云架构问题. 对于Sp ...

  7. spring 国际化i18n配置

    i18n(其来源是英文单词 internationalization的首末字符i和n,18为中间的字符数)是“国际化”的简称.在资讯领域,国际化(i18n)指让产品(出版物,软件,硬件等)无需做大的改 ...

  8. spring 国际化-i18n

    i18n(其 来源是英文单词 internationalization的首末字符i和n,18为中间的字符数)是“国际化”的简称.在资讯领域,国际化(i18n)指让产品(出版 物,软件,硬件等)无需做大 ...

  9. 【spring 国际化】springMVC、springboot国际化处理详解

    在web开发中我们常常会遇到国际化语言处理问题,那么如何来做到国际化呢? 你能get的知识点? 使用springgmvc与thymeleaf进行国际化处理. 使用springgmvc与jsp进行国际化 ...

随机推荐

  1. ASP.NET Core 中文文档 第二章 指南(4.10)检查自动生成的Detail方法和Delete方法

    原文 Examining the Details and Delete methods 作者 Rick Anderson 翻译 谢炀(Kiler) 校对 许登洋(Seay).姚阿勇(Mr.Yao) 打 ...

  2. 微信小程序(微信应用号)开发ide安装解决方法

    这两天整个技术圈都炸锅了,微信小程序(微信应用号)发布内测,首批200家收到邀请,但是没受邀请的同学,也不用担心,下面介绍一下解决方法. 首先需要下载ide,昨天只需要下载0.9版本的编辑器并替换文件 ...

  3. Unity3d连接SQL Server数据库出现SocketException: 使用了与请求的协议不兼容的地址错误

    这两天,同学问我Unity3d连接SQL Server的问题,当时我只是简单的说:“应该一样吧,就是那简单的几句啊”.之后他让我试了下,我才发现有问题了.故此写下一篇博客,要牢记这件事的教训,操作数据 ...

  4. 基于NodeJS微信公众号

    最近重新研究了微信公众号的高级接口,原来也利用C#或JAVA写过微信公众号,主要是消息的基础接口. 由于当时不知道微信公众号可以申请测试公众号,微信测试公众号基本上没有任何限制,对于开发来说是一个不错 ...

  5. LINQ to SQL语句(19)之ADO.NET与LINQ to SQL

    它基于由 ADO.NET 提供程序模型提供的服务.因此,我们可以将 LINQ to SQL 代码与现有的 ADO.Net 应用程序混合在一起,将当前 ADO.NET 解决方案迁移到 LINQ to S ...

  6. Shell脚本编程30分钟入门

    Shell脚本编程30分钟入门 转载地址: Shell脚本编程30分钟入门 什么是Shell脚本 示例 看个例子吧: #!/bin/sh cd ~ mkdir shell_tut cd shell_t ...

  7. Devexress XPO xpPageSelector 使用

    在官网找到的.在这里做个备注. private void simpleButton1_Click(object sender, EventArgs e) { ) return; xpPageSelec ...

  8. FunDA(2)- Streaming Data Operation:流式数据操作

    在上一集的讨论里我们介绍并实现了强类型返回结果行.使用强类型主要的目的是当我们把后端数据库SQL批次操作搬到内存里转变成数据流式按行操作时能更方便.准确.高效地选定数据字段.在上集讨论示范里我们用集合 ...

  9. 口碑外卖系统架构图(li)

  10. Hibernate4.2.4入门(二)——一对多的映射关系

    一.前言 前面我们已经学过hibernate的基础,学会增删改查简单的操作,然而我们数据库中存在着1对多,多对1,多对多的关系,hibernate又是基于ORM基础上的开源框架,可以让我们不用去编写S ...