`
gaoyuntao2005
  • 浏览: 311342 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

入门 13 - MessageResource接口

阅读更多

ApplicationContext继承了org.springframework.context.MessageResource接口,您可以使用getMessage()的各个签署方法来取得讯息资源,从而实现国际化讯息的目的。 

在这个主题中,我们简单的透过MessageResource的一个实作org.springframework.context.support.ResourceBundleMessageSource来取得国际化讯息,首先在Bean定义档中撰写:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

    <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">

        <property name="basename">

            <value>messages</value>

        </property>

    </bean>

</beans>


basename属性用来设定讯息资源的前置文件名称,在这边设定是messages,则讯息资源文件的名称可以是 messages_en_US.properties、messages_zh_TW.properties、 messages_*.properties等等名称,在这边我们提供两个:messages_en_US.properties、 messages_zh_TW.properties,首先messages_en_US.properties内容如下:

userlogin=User {0} login at {1}


message_zh_TW.properties内容如下:

userlogin=使用者 {0} 于 {1} 登入


其中{0}与{1}是我们可以在程序执行过程中设定的参数。Spring实际上会使用JDK的ResourceBundle来读取这些文件,而中文在编码 过程中会发生问题,为了要能正确的显示中文,我们必须对message_zh_TW.properties进行编码转换,使用JDK工具中的 native2ascii即可:

native2ascii message_zh_TW.properties message_zh_TW.txt


之后将message_zh_TW.txt覆盖(替换)掉message_zh_TW.properties就可以了。 

接下来撰写一个简单的测试程序:

package onlyfun.caterpillar;

 

import java.util.*;

import org.springframework.context.*;

import org.springframework.context.support.*;

 

public class Test {

    public static void main(String[] args) throws Exception {

        ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");

 

        Object[] arguments = new Object[] {"良葛格", Calendar.getInstance().getTime()};

 

        System.out.println(context.getMessage("userlogin", arguments, Locale.US));

        System.out.println(context.getMessage("userlogin", arguments, Locale.TAIWAN));

    }

}


ClassPathXmlApplicationContext实作了ApplicationContext接口,我们使用其来读取Bean定义档,并返 回一个ApplicationContext接口的实例,透过设定参数并指定Locale,我们使用getMessage()设定对应的讯息,这个测试程式结果会显示以下的内容:

log4j:WARN No appenders could be found for logger (org.springframework.beans.factory.xml.XmlBeanDefinitionReader).

log4j:WARN Please initialize the log4j system properly.

User 良葛格 login at 10/28/04 12:52 PM

使用者 良葛格 于 2004/10/28 下午 12:52 登入

分享到:
评论

相关推荐

    struts: get messageresource from database

    这个实现类应该扩展Struts的`MessageResources`接口,并重写其核心方法,如`getString()`和`getBundle()`。在这些方法中,可以使用JDBC或其他ORM框架(如Hibernate或MyBatis)来查询数据库,查找对应的消息资源。 ...

    Spring入门

    #### MessageResource接口 - **定义**:用于国际化消息处理的接口。 - **功能**:提供消息获取、格式化等功能,支持多语言的消息显示。 - **示例**:定义一个包含不同语言版本消息的properties文件,并通过`...

    Struts2入门基础

    &lt;s:i18n name="messageResource"&gt; &lt;s:text name="label.helloWorld"&gt;&lt;/s:text&gt; 指定在从messageResource取资源 4) 读取参数变量 &lt;s:param&gt;Jia Xiaoyuan 使用带参数的资源,可以替换label.hello=hello {0}中的...

    JSP Spring ApplicationContext的国际化支持

    1.ApplicationContext接口继承了MessageResource接口,因此使用ApplicationContext作为spring容器可以使用国际化资源文件。 2.在MessageResource接口中定义了两个主要用于国际化的方法: String getMessage(String ...

    spring 技术手册

    为了支持多语言的应用程序,Spring提供了一个MessageResource接口,用于处理消息资源文件。 #### 十四、资源文件的获取 在Spring中,可以通过特定的API来访问外部资源文件,如属性文件等。 #### 十五、Aware相关...

    SSI框架 部署手册

    - `messageResource.properties`: 默认配置文件,当找不到特定语言配置文件时使用。 - **配置文件示例**: ```properties # messageResource_zh_CN.properties loginPage=欢迎页面 ``` ```properties # ...

    前端-后端java的Util类的工具类

    │ messageResource_zh_CN.properties │ spring.xml │ struts.xml │ ├─28个java常用的工具类 │ │ Base64.java │ │ Base64DecodingException.java │ │ CConst.java │ │ CharTools.java │ │ ...

    J2EE资源文件和log4j通用配置

    ResourceBundle bundle = ResourceBundle.getBundle("messageResource", Locale.CHINA); String welcomeMessage = bundle.getString("welcome_message"); ``` 总结起来,J2EE资源文件和log4j通用配置对于构建健壮、...

    struts2 国际化 i18n

    struts.custom.i18n.resources=messageResource ``` 或者在`struts.xml`配置文件中添加: ```xml &lt;constant name="struts.custom.i18n.resources" value="messageResource"/&gt; ``` 这里的`messageResource`是你定义的...

    ssi框架搭建

    例如,中文资源文件命名为`messageResource_zh_CN.properties`。 - **配置示例**: ```properties # messageResource_zh_CN.properties loginPage=欢迎登录 ``` - **使用方式**: - **页面中**:使用`...

    struts2详解

    &lt;constant name="struts.custom.i18n.resource" value="MessageResource" /&gt; ``` 或者更改提交的后缀名: ```xml &lt;!-- 在struts.xml中 --&gt; ``` 4. **包配置**:Struts2使用包来管理Action和拦截器。包的...

    SSI框架搭建

    - **默认配置**:如果没有找到匹配的语言版本,系统会回退到默认配置文件`messageResource.properties`。 - **使用国际化**: - **页面使用**:`&lt;s:text name="loginPage"/&gt;` - **Action中使用**:`getText(...

    jsf 详细 原理介绍 内容讲解

    `MessageResource`类用于构建本地化消息模板,实现JSF应用的国际化和本地化功能。 总的来说,JSF提供了一个强大的框架,通过组件、上下文、生命周期管理和事件处理机制,简化了Web应用程序的开发。理解这些基本...

    struts综合教程

    在实际开发中,Action类需要实现Struts2提供的接口,如`ActionSupport`,并覆盖其中的方法,比如`execute()`,在这里完成登录检查。同时,OGNL用于在JSP页面和Action之间传递数据,例如在JSP中显示或接收表单数据。 ...

    struts 整合笔记

    - 使用 `&lt;message-resources parameter="messageresource"&gt;` 加载资源文件。 - 通过 `&lt;bean:message key="user.username"&gt;` 获取资源文件中的文本。 - 支持动态切换语言环境,如:`request.getSession()....

    codechallenge-batman

    代码挑战 ... 生成带有标题 Content-Type: application/json 和 JSON 负载的响应: { " message " : { " content " : ...它必须有一个包含 REST API 定义的类MessageResource和一个执行逻辑的MessageService类。 它必须

    codechallenge-riddler

    : { " content " : " Hello $name " }} 此外,该服务必须满足以下要求: 代码必须存储在 github 上并位于此存储库的分支中代码必须用java编写Maven用于构建项目并生成war文件Jetty 用作 Web 服务器REST 接口由 ...

    程序国家化.doc

    这里定义了资源文件的`basename`为`messageResource`,意味着Struts2会在`WEB-INF/classes`目录下查找以`messageResource`为前缀的资源文件。如果资源文件位于子目录下,还需要在配置中明确指出子目录路径。 #### ...

    struts2制作helloworld

    - 资源文件通常命名为`messageResource.properties`(默认英语),并为其他语言创建类似`messageResource_zh_CN.properties`(中文)的文件。 - 使用`native2ascii`工具处理中文字符,确保编码正确。 - 在Action...

Global site tag (gtag.js) - Google Analytics