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. JavaScript学习总结(三)——this、原型、javascript面向对象

    一.this 在JavaScript中this表示:谁调用它,this就是谁. JavaScript是由对象组成的,一切皆为对象,万物皆为对象.this是一个动态的对象,根据调用的对象不同而发生变化, ...

  2. Java 快速排序两种实现

    快速排序,只要学习过编程的人肯定都听说过这个名词,但是有时候写的时候还真蒙住了,网上搜罗了下以及查阅了"introduction to algorithm",暂时找到两种实现快排的 ...

  3. 常用数据结构-线性表及Java 动态数组 深究

    [Java心得总结六]Java容器中——Collection在前面自己总结的一篇博文中对Collection的框架结构做了整理,这里深究一下Java中list的实现方式 1.动态数组 In compu ...

  4. PHP实现全排列(递归算法)

    算法描述:如果用P表示n个元素的全排列,而Pi表示n个元素中不包含元素i的全排列,(i)Pi表示在排列Pi前面加上前缀i的排列,那么n个元素的全排列可递归定义为:    ① 如果n=1,则排列P只有一 ...

  5. How to implement equals() and hashCode() methods in Java[reproduced]

    Part I:equals() (javadoc) must define an equivalence relation (it must be reflexive, symmetric, and ...

  6. App内测神器之蒲公英

    一.前言部分 没使用蒲公英之前一直采用非常傻B的方式给公司App做内部测试,要么发个测试包让公司测试人员用iTUnes 自己安装 要么苦逼的一个个在我Xcode上直接安装测试包,操作起来又麻烦又苦逼, ...

  7. Pyc 是什么东东

    在众多语言中, 最终我们可以将语言分为编译性语言和解释性语言两种 编译性语言,也就是机器语言, 是机器能读的懂的语言, 像C语言, 其实高级语言都是基于C语言的基础之上运行的 解释性语言, 不同于编译 ...

  8. System.nanoTime与System.currentTimeMillis的理解与区别

    System类代表系统,系统级的很多属性和控制方法都放置在该类的内部.该类位于java.lang包. 平时产生随机数时我们经常拿时间做种子,比如用System.currentTimeMillis的结果 ...

  9. Struts2入门(七)——Struts2的文件上传和下载

    一.前言 在之前的随笔之中,我们已经了解Java通过上传组件来实现上传和下载,这次我们来了解Struts2的上传和下载. 注意:文件上传时,我们需要将表单提交方式设置为"POST" ...

  10. 关于XHR对象中status范围的记录

    if(xhr.status >= 200 && xhr.status < 300 || xhr.status == 304){ // 成功执行区域 // 2XX表示有效响应 ...