idea 创建springmvc的国际化报 No message found under code 'name' for locale 'zh_CN'.

本文记录了解决SpringMVC国际化配置错误的过程,详细介绍了配置文件springmvc.xml中的国际化设置,包括messageSource、localeResolver及localeChangeInterceptor的正确用法,以及在IDEA环境下创建i18n资源文件时遇到的特殊问题和解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个错误在网上找了好久,试过许多方法都不行,我的代码也检查了几遍,也和别人的对照过,愣是没有找到,后来脑壳突发奇想的想到一种可能,那就是自己的创建方式有问题,之后也解决了问题,俺在这里记录下。
俺的springmvc.xml相关配置:

<!--国际化-->
    <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
       <!--设置编码格式,建议写上-->
        <property name="defaultEncoding" value="UTF-8" />
        <!--如果没有找到k相应的message,不会报异常,输出k值-->
        <property name="useCodeAsDefaultMessage" value="true" />
        <!--文件名前缀,得到相应文件-->
        <property name="basename" value="classpath:i18n"/>
    </bean>

    <!--把区域信息存在预定义回话中,设置默认区域-->
    <bean id="localeResolver"
          class="org.springframework.web.servlet.i18n.SessionLocaleResolver">
        <!--设置默认区域,可以不设置-->
        <property name="defaultLocale" value="zh_CN" />
    </bean>

    <!--通过拦截器拦截参数来设置-->
    <mvc:interceptors>
        <bean id="localeChangeInterceptor"
              class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
            <!--拦截器拦截的参数-->
            <property name="paramName" value="local" />
        </bean>
    </mvc:interceptors>

jsp页面:

<h3><a href="testI18n?local=zh_CN">中文</a></h3>
<h3><a href="testI18n?local=en_US">英文</a></h3>

java代码就是普通的跳转方法
web.xml也是参照原来可以正常运行web.xml,其实是copy过来的。
跳转的页面jsp代码:
要先导入spring的自带标签库
<%@ taglib prefix=“s” uri=“http://www.springframework.org/tags” %>

<form action="valdate" method="post">
      <s:message code="name"/><input type="text" name="name" id="name"><br>
      <s:message code="sex"/> <input name="sex" id="sex"><br>
      <s:message code="pwd"/>  <input name="pwd" id="pwd"><br>
      <button><s:message code="btn"/></button>
  </form><br>

一切的一切都是那么好,但是,一运行就xx报错。
下面是解决方案:
idea非常智能,创建几个名称前缀叫i18n文件,他会这些自动绑定在一起
idea非常智能,创建几个名称前缀叫i18n文件,他会这些自动绑定在一起
,就是这个绑定,导致spring mvc无法读取里面的数据。
之后俺删除了一个i18n的文件,右键选择如下图。

在这里插入图片描述
点击加号创建刚才删除的文件
在这里插入图片描述
之后点击ok后
在这里插入图片描述
如果出现了中文解释后再点击ok就行了,之后其他的执行相同步骤,先删除,后添加

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值