如何在spring mvc框架中实现MessageSource来管理国际资源文件呢
如下:
1.在applicationContext.xml文件内配置如下
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="defaultEncoding" value="iso-8859-1" />
<property name="useCodeAsDefaultMessage" value="true" />
<property name="cacheSeconds" value="10"></property>
<property name="basenames">
<list>
<value>classpath:messages</value>
</list>
</property>
</bean>
设置“useCodeAsDefaultMessage”,默认为false,这样当Spring在ResourceBundle中找不到messageKey的话,就抛出NoSuchMessageException,
把它设置为True,则找不到不会抛出异常,而是使用messageKey作为返回值。
2.在你的src文件路径下新建messages.properties文件,里面存写一些 信息
mobile.is.null=手机号码不能为空
mobile.is.invalid=手机号码无效
username.is.null=用户名不能为空
username.already.exists=用户名已经存在
3.在需要的controller里面可以如下:
model.addAttribute("msgs","username.already.exists");
4.用fmt标签才能正常显示
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<c:if test="${msgs!=null && msgs.size()>0}">
<fmt:message key="${msgs}" />
</c:if>
分享到:
相关推荐
2. 配置Spring MVC:在Spring的配置文件中,配置`MessageSource` bean,指定资源文件的基名和位置。例如: ```xml <bean id="messageSource" class="org.springframework.context.support....
通过这个例子,你可以了解到如何创建资源文件、配置消息源以及如何在控制器和视图中使用这些资源。 首先,国际化主要依赖于`MessageSource`接口,Spring Boot默认提供了基于`ResourceBundleMessageSource`的实现。`...
在Spring Boot应用中,我们需要配置`LocaleResolver`来处理语言选择,并使用`WebMvcConfigurer`添加`LocaleChangeInterceptor`来拦截和处理语言切换。在`I18nApplication.java`中,`CookieLocaleResolver`被用来存储...
除了基本的资源配置,Spring MVC还提供了更高级的功能,如支持参数化的消息(通过`getMessage`方法的参数传递),以及使用`ReloadableResourceBundleMessageSource`实现热加载资源文件更新。 总结一下,Spring MVC...
3. **在代码中使用**:在控制器、服务或任何需要国际化的地方,我们可以使用`MessageSource`的`getMessage()`方法获取本地化消息。例如: ```java @Autowired private MessageSource messageSource; public ...
我们可以自定义`MessageSource`实现,或者使用Spring提供的`AbstractMessageSource`或`ReloadableResourceBundleMessageSource`。 3. **配置MessageSource**:在SpringMVC的配置文件中,我们需要添加一个`...
4. **MVC中的i18n**:在Spring MVC中,可以通过`@ControllerAdvice`和`@ExceptionHandler`注解全局处理异常,并结合`MessageSource`获取本地化的错误消息。另外,`@RequestMapping`中的`produces`属性可以指定返回...
7. **编写控制器方法**:在控制器方法中使用`@MessageSource`注解来引用国际化资源文件中的键值对。 #### 四、国际化资源文件示例 以`messages_zh_CN.properties`为例,展示中文资源文件的内容: ```properties ...
今天,我们将探讨 Spring Security 中的国际化和 UserCache 的配置和使用。 国际化配置 国际化是指在应用程序中支持多种语言的能力,以满足不同地区和文化的需求。 Spring Security 提供了一个名为 `...
在Spring框架中,面向接口编程是一种重要的设计原则,它强调了使用接口而非具体的实现类进行编程,这样可以提高代码的可扩展性和可维护性。在Spring应用中,我们通常通过ApplicationContext来管理Bean的生命周期和...
Spring框架是Java开发中最受欢迎的轻量级框架之一,它为构建企业级应用程序提供了全面的编程和配置模型。Spring 3.1.0是该框架的一个重要版本,它引入了许多新特性和改进,以增强其功能和性能。下面将详细讨论Spring...
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> <property name="defaultEncoding" value="UTF-8" /> <bean id="localeResolver" class="org....
本项目"统一进行请求参数格式化操作.zip"展示了如何在Spring Boot应用中使用它们进行请求参数的校验,并通过分组实现不同参数的校验逻辑。 首先,`@Validated` 是Spring提供的一个注解,用于在控制器方法的参数上...
通过查看源代码和资源文件,我们可以深入理解他们如何处理国际化问题,包括如何组织资源库,如何配置Spring MVC,以及如何在视图中使用这些资源。这样的实践对于学习和改进自己的多语言应用开发能力是非常有价值的。
2. 在实体类中使用Hibernate Validator注解定义验证规则。 3. 配置Spring的`MessageSource`,加载资源文件。 4. 在控制器中捕获验证异常,利用`MessageSource`获取国际化后的错误消息并展示给用户。 总之,Java的...
在上面的配置中,我们使用 `ReloadableResourceBundleMessageSource` 创建了一个资源文件 `messageSource`,用于存储错误信息。我们指定了资源文件的名称、编码格式和缓存时间。 ### 2.4 自定义 WebBinder 最后,...
class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> <property name="defaultEncoding" value="UTF-8" /> ``` 在这个例子中,basename配置为classpath:messages,这意味着...
可以使用`MessageSource`接口和`ReloadableResourceBundleMessageSource`类来管理和加载资源束,同时Spring MVC也提供了方便的视图层语言切换支持。 7. **国际化最佳实践**:在开发过程中,确保所有的字符串都在...