`
Rainbow702
  • 浏览: 1078129 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类

spring mvc中,如何在 Java 代码里,获取 国际化 内容

阅读更多

在spring MVC中,要想实现国际化,必须要在xml中定义如下:

 

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

 其中,id 的值必须是 “messageSource”,否则会报错。

 

list里的是你国际化文件的名称(上面那么写的话,那么,这份文件应该是放置于classpath根目录下的)。

以上的配置,估计有过sping MVC开发经验的童鞋都是知道的。

 

我今天遇到一个需求是,要在java代码中获取国际化文件中的内容。

以前如果是使用struts2的话,很容易实现,只要任意一个类继承 ActionSupport ,然后就可以使用getText()之类的方法去获取了。

但在spring中,没有这种类供来继承。

那怎么办呢,只好另想它法了。

首先,我想到的是,既然它是一个被声明好的bean,那么,应该可以使用 @Autowired 标签来绑定吧。于是我写了如下的代码:

 

public class Const {
	@Autowired
	private static ResourceBundleMessageSource rms
	
	public static String getTextValue(String key) {
		return rms.getMessage(key, null, null);
	}
}

以为可以完美解决这个问题的。但事实总是残酷的,你会发现,rms 的值一直是null,也就是说注入失败了。至于为什么失败,我现在还没想明白,有知道的童鞋还麻烦指点一下。

 

后来在网上查到,“ApplicationContext” 这个接口继承了“MessageSource”接口,那么我们只要获取项目的 ApplicationContext 的实现类,就可以通过 getMessage() 方法来获取国际化文件内容了。

那么要如何简单方便的来获取 ApplicationContext 的实现类呢?这个时候就需要另一个接口了,即“ApplicationContextAware”,任何类实现这个接口,均会被注入  ApplicationContext 。

那还等什么,赶快来试一下吧:

public class SpringUtil implements ApplicationContextAware {
	private static ApplicationContext applicationContext;

	public static ApplicationContext getApplicationContext() {
		return applicationContext;
	}

	@Override
	public void setApplicationContext(ApplicationContext arg0) throws BeansException {
		applicationContext = arg0;
	}

	public static Object getBean(String id) {
		Object object = null;
		object = applicationContext.getBean(id);
		return object;
	}
}

当然,必须要将上面的 SpringUtil 类在xml文件中配置一下,才能让它被spring框架读取,然后给它注入 ApplicationContext。配置很简单:

<bean id="SpringUtil" class="util.SpringUtil"/>

这样就行了,然后,去改一下上面的Const类吧:

public class Const {
	
	public static String getTextValue(String key) {
		return SpringUtil.getApplicationContext().getMessage(key, null, null);
	}
}

是不是很简单啊?

分享到:
评论
2 楼 lgywindows 2017-04-10  
我照你的方法实现了在java中取国际化。谢谢提供!
1 楼 lemon_yt 2016-07-03  
正在找  

相关推荐

    基于Spring Mvc的Java Web项目

    在本项目中,它可能通过Ajax请求后端数据,根据当前页码和每页记录数获取相应的数据,然后在前端展示,使得用户无需刷新页面就能查看不同页的内容。 7. **动态编辑信息**: 动态编辑信息通常涉及前端的表单提交和...

    基于 Java ssh整合 开源博客系统 spring mvc,hibernate,spring,maven 整合开发

    Spring MVC、Hibernate和Spring是Java Web开发中的常用框架,它们在现代企业级应用中扮演着核心角色。 Spring MVC是Spring框架的一个模块,专门用于处理Web应用程序的模型-视图-控制器(MVC)架构。它提供了一个...

    Java EE企业级应用开发教程 Spring+Spring MVC+MyBatis 第2版 Jav 第2版源码

    《Java EE企业级应用开发教程》第二版,结合Spring、Spring MVC和MyBatis三大框架,为读者提供了全面深入的Java后端开发学习路径。这本书的源码资源旨在帮助开发者通过实践来理解并掌握企业级应用开发的核心技术。 ...

    Spring-MVC-step-by-step.zip_Java MVC spring_Java spring mvc_sp

    首先,你需要安装Java Development Kit (JDK) 和Apache Maven,然后在项目中引入Spring Web和Spring MVC的依赖。创建一个Spring Boot项目,利用其自动配置特性可以快速启动Spring MVC。 三、DispatcherServlet ...

    Spring MVC使用Demo

    这通常包括安装Java Development Kit (JDK)、配置IDE(如IntelliJ IDEA或Eclipse)、添加Spring MVC的相关依赖到构建工具(如Maven或Gradle)的pom.xml或build.gradle文件中。还需要配置Web应用服务器,比如Tomcat,...

    spring mvc 国际化 demo

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

    spring mvc restful service

    在本文中,我们将深入探讨如何利用Spring MVC创建RESTful服务,这些服务可以处理字符串、JSON和XML数据,并且是用Maven构建的。我们将讨论关键概念、配置、以及如何构建可直接运行的项目。 1. **RESTful服务**:...

    Spring MVC 教程快速入门 深入分析

    十七、Spring MVC如何取得Spring管理的bean:阐述了如何在Spring MVC中获取Spring容器管理的Bean,以便进行业务处理。 十八、Spring MVC多视图控制器:解释了如何配置和使用Spring MVC的多视图控制器来处理不同的...

    spring mvc 4.0

    10. **国际化支持**:通过消息源(MessageSource)和LocaleResolver,Spring MVC提供了强大的国际化支持,能够根据用户语言环境展示不同的内容。 11. **错误处理**:通过@ControllerAdvice和@ExceptionHandler,...

    10 扩展之Spring MVC中如何实现国际化i18n慕课专栏1

    Spring MVC的国际化(i18n)是基于Java的国际化机制构建的,它利用Resource Bundle加载对应国家/地区(Locale)的语言资源文件,以便根据用户的语言环境提供相应的信息。Spring MVC通过`ResourceBundleMessageSource...

    将spring mobile集成到spring mvc

    在现代Web开发中,Spring框架是Java领域中最受欢迎的全栈解决方案之一,而Spring MVC作为其一部分,提供了强大的MVC(Model-View-Controller)架构支持。Spring Mobile是Spring框架的扩展,专为移动设备优化,它使得...

    spring mvc mybatis 整合源码,带数据库脚本,带详细注释

    Spring MVC 和 MyBatis 是两个在Java Web 开发中广泛使用的框架。Spring MVC 作为Spring框架的一部分,负责处理HTTP请求并转发到相应的业务逻辑,而MyBatis则是一个轻量级的持久层框架,用于简化数据库操作。整合这...

    Spring MVC Locale 的使用 中文 英文 等语言 切换

    在Spring MVC框架中,`Locale`是用来处理应用程序中的多语言支持的关键组件。它定义了用户的语言和地区设置,例如中文(zh_CN)或英文(en_US)。这篇博客文章将深入探讨如何在Spring MVC应用中实现语言切换功能,以...

    spring mvc 搭建(java web)

    Spring MVC作为Spring框架的一部分,因其轻量级、灵活性高等特点,被广泛应用于Java Web应用的开发之中。本文将详细介绍如何搭建Spring MVC框架,并结合Spring与Hibernate实现一个简单的Java Web应用。 #### 二、...

    Spring MVC不能直接接收list类型参数的问题

    这种方法适用于 JSON 格式的请求体,通过 `@RequestBody` 注解,Spring MVC 可以自动将请求体中的 JSON 数据转换为 Java 对象。 #### 总结 以上介绍了三种解决 Spring MVC 无法直接接收 List 类型参数的方法。这些...

    spring mvc、 easyui、 mybatis 开发网站后台管理系统源代码下载

    Spring MVC、EasyUI和MyBatis是开发Java Web应用程序的三个关键组件,它们共同构建了一个高效、可维护的后台管理系统。下面将详细解释这三个技术及其在构建网站后台管理系统中的作用。 1. Spring MVC:Spring MVC是...

    Java EE企业级应用开发教程(Spring+Spring MVC+MyBatis)所有实验及实验报告.zip

    在本教程中,Spring将作为基础架构层,帮助开发者实现松耦合和控制反转(IoC),使得应用程序更加模块化和易于测试。 Spring MVC是Spring框架的一部分,专门用于构建Web应用程序的Model-View-Controller(MVC)架构...

    spring mvc架包

    在实际项目中,Spring MVC 结合 Spring Boot 可以快速构建现代化的 Web 应用。通过配置少量代码,就可以实现强大的功能,如自动化配置、健康检查、内嵌的 Tomcat 服务器等。此外,Spring Data JPA 和 MyBatis 等持久...

    Spring mvc 教程

    - **获取时区信息**:Spring MVC 提供了获取用户时区的功能。 - **解析器**:包括 AcceptHeaderLocaleResolver、CookieLocaleResolver 和 SessionLocaleResolver。 - **地区更改拦截器 LocaleChangeInterceptor**:...

    《Java EE企业级应用开发教程(Spring+Spring MVC+MyBatis)》配套资源.zip

    1. **示例代码**:这些代码展示了如何在实际项目中整合Spring、Spring MVC和MyBatis。它们通常包括配置文件、实体类、DAO接口及实现、Service层接口及实现、Controller层的处理逻辑等,帮助读者理解各个组件的交互...

Global site tag (gtag.js) - Google Analytics