`

spring的国际化问题

阅读更多
org.apache.jasper.JasperException: org.springframework.context.NoSuchMessageException: No message found under code 'zhiguFile.uri' for locale 'zh_CN'.
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:548)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:469)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:168)
	org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:303)
	org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1244)
	org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1027)
	org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:971)
	org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966)
	org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:868)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:644)
	org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

 

spring国际化时出现了上面错误信息。

 

sping配置文件application-config.xml如下

 

	<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
		<property name="basenames">
			<list>
                                <!-- 这就是出问题的地方 -->
				<value>classpath:config/messages</value>
			</list>
		</property>
	</bean>

 

配置的路劲的不对,导致国际化时找不到对应的信息。

 

项目结构如下

 

 

 

 以上问题的处理的方式是只需要修改为如下

 

	<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
		<property name="basenames">
			<list>
				<value>config/messages</value>
			</list>
		</property>
	</bean>

 

问题解决了。

 

在java代码中的使用方式为,这是一个验证

 

 如果表单提交回来的字段uri为空,则会使用zhiguFile.uri在配置messages.properties文件中对应属性值作为错误信息展示。jsp代码如下:

		<form:form action="/file/test" modelAttribute="zhiguFile">
			<form:input path="uri" />
			<form:errors path="uri" ></form:errors>
			<form:input path="spcs" />
			<form:button value="submit" ></form:button>
		</form:form>

编译的html代码如下

		<form id="zhiguFile" action="/file/test" method="post">
			<input id="uri" name="uri" type="text" value=""/>
			
			<input id="spcs" name="spcs" type="text" value=""/>
			<button type="submit" value="submit"></button>
		</form>

表单验证出错编译后html代码如下

<form id="zhiguFile" method="post" action="/file/test">

    <input id="uri" type="text" value="" name="uri"></input>
    <span id="uri.errors">

        uri不能为空

    </span>
    <input id="spcs" type="text" value="" name="spcs"></input>
    <button value="submit" type="submit"></button>

</form>

由上可以看出

<form:errors path="uri" ></form:errors>
被编译成了
    <span id="uri.errors">

        uri不能为空

    </span>

 好了,spring国际化的问题解决了,就是属性文件不用classpath配置,而是写相对路径

 

小结:spring 的国际化分为4个步骤

1.编写messages.properties文件

2.在spring的配置文件中引入messages.properties文件

3.编写一个验证器去实现spring的validator接口

4.绑定验证器到控制器

 

推荐两篇比较好的博客

http://www.cnblogs.com/HD/p/4123146.html

http://haohaoxuexi.iteye.com/blog/1812584

 

 

 

 

 

  • 大小: 60.5 KB
  • 大小: 21 KB
0
2
分享到:
评论

相关推荐

    五 Spring 国际化问题

    Spring 国际化(i18n)是Spring框架中用于支持多语言环境的功能,它使得应用程序能够根据用户的地域设置显示相应的语言内容。在本文中,我们将深入探讨Spring的国际化实现,包括其工作原理、配置步骤以及实际应用。 ...

    spring 国际化 spring mvc

    Spring MVC 国际化实现详解 在 Spring MVC 框架中,实现国际化是一项非常重要的任务。国际化可以让我们的应用程序适应不同语言和地区,提高应用程序的可读性和可用性。本文将详细介绍如何使用 Spring MVC 实现国际...

    Spring国际化案例

    在Spring框架中,国际化(Internationalization,简称i18n)是为支持多语言环境而设计的功能,使得应用程序能够根据用户的地区或语言设置提供相应的显示内容。本案例将深入探讨如何在Spring应用中实现国际化。 首先...

    spring国际化实例

    Spring框架是Java开发中的一个核心库,它提供了一个广泛的功能集,包括依赖注入、面向切面编程、数据访问、Web应用程序开发以及我们今天关注的主题——国际化(i18n)。国际化是一个过程,使得软件能够适应不同语言...

    Spring mvc 国际化

    Spring MVC的国际化(Internationalization)指的是将应用根据不同地域、语言习惯以及文化差异进行本地化的过程。这涉及了软件应用对多语言的支持,以便不同区域的用户能够以自己的母语使用软件。Spring MVC提供了...

    spring显示国际化信息

    在Spring框架中,国际化(Internationalization,简称i18n)是为支持多语言环境而设计的功能,使得应用程序能够根据用户所在的地域和语言提供相应的显示内容。本示例将详细介绍如何在Spring应用中实现国际化。 首先...

    spring国际化项目

    在本项目"spring国际化项目"中,我们将深入探讨如何在Spring环境中实现国际化。 首先,我们需要理解国际化的基本概念。国际化不仅仅是翻译文本,它涉及将应用程序中的所有文化特定元素,如日期格式、货币符号、数字...

    spring 实现国际化的全部代码

    ### Spring 实现国际化 (i18n) 的关键技术点 #### 一、国际化(i18n)在Spring中的重要性及应用场景 国际化(Internationalization,简称i18n)是指设计和开发软件产品时,使得产品能在各种语言和区域环境中进行...

    Spring实现国际化的一个小例子

    在Spring框架中,实现国际化(Internationalization,简称i18n)是常见的需求,它使得应用程序可以根据用户所在的地区提供不同的语言版本。以下是一个详细的步骤,解释如何在Spring应用中实现国际化。 1. **理解...

    spring2国际化demo

    spring2国际化的demo 用的是eclipse+myeclipse6.0GA 很简单 但是感觉不错 学习之后留着备用 里面加入用到了spring的泛型工厂 可以不用强制转换了

    spring国际化

    而Spring的国际化(i18n,Internationalization)功能则允许我们为不同地区和语言的用户提供定制的显示内容。 在Spring MVC中实现国际化,主要涉及以下几个关键步骤和概念: 1. **资源文件**:首先,我们需要创建...

    Spring国际化Demo

    Spring国际化Demo

    spring mvc 3 国际化(下)——简单自定义操作

    在Spring MVC 3中,国际化是一项重要的功能,它允许我们为不同的地区和语言提供定制的显示内容。在“spring mvc 3 国际化(下)——简单自定义操作”这一主题中,我们将深入探讨如何自定义国际化过程,以满足特定的...

    Spring Boot 国际化(i18n)配置demo.zip

    Spring Boot的国际化(i18n)配置是其强大功能的一部分,它允许开发人员为不同地区的用户提供本地化的应用体验。这个“Spring Boot 国际化(i18n)配置demo.zip”包含了一个演示如何在Spring Boot项目中实现i18n的示例...

    自己动手在Spring-Boot上加强国际化功能的示例

    在Spring Boot应用中加强国际化功能是一项重要的任务,特别是在服务全球用户的情况下。本示例将指导你如何在Spring Boot中自定义国际化实现,包括从文件夹中动态加载多个国际化文件、根据用户请求动态设置前端显示的...

    spring mvc 国际化 demo

    在Spring MVC框架中,国际化(i18n)是一个重要的特性,它允许应用程序根据用户的语言和地区提供本地化的信息。这个“spring mvc 国际化 demo”是一个展示如何利用注解实现这一功能的实例。接下来,我们将深入探讨...

    spring boot mybatis 国际化 拦截器

    在本文中,我们将深入探讨如何在Spring Boot应用中整合MyBatis,实现MySQL数据库连接,以及如何利用Spring MVC和拦截器来实现国际化(i18n)功能。此外,我们还将提及IIS 12作为可能的Web服务器选项。 首先,Spring...

    spring boot国际化 i18n

    Spring Boot的国际化(i18n)功能使得开发者可以轻松地为应用程序提供多语言支持,以便用户可以根据他们的偏好选择不同的语言界面。以下是对这个主题的详细讲解。 首先,我们需要了解i18n这个术语,它是...

    解决Spring国际化文案占位符失效问题的方法

    解决Spring国际化文案占位符失效问题的方法 Spring国际化文案占位符是指在Spring框架中使用MessageSource来处理国际化文案,但是有时候占位符可能不会被正确地替换,导致文案显示不正确。这种情况下,需要了解...

    spring国际化jsp

    标题 "spring国际化jsp" 暗示我们讨论的是在Spring框架中实现Web应用程序的国际化(i18n)过程,特别是在使用JSP(JavaServer Pages)时。这通常涉及到资源包(properties文件)的使用,以存储不同语言的文本字符串...

Global site tag (gtag.js) - Google Analytics