Spring中后台字符串国际化

  1.在工程的资源文件夹(source folder)中建立三个properties文件:messages.properties(默认)、messages_zh_CN.properties(中文)、messages_en_US.properties(英文)。

  properties文件中的字符串资源采用键值对的格式填写信息,如下:

    HelloWorld=问候语:@0 问候时间:@1;

  2.获取国际化字符串的工具类 UniversalMsg:

  

package com.luxl.action;

import java.util.Locale;
import java.util.ResourceBundle;

/**
 * @description 用于获取国际化字符串
 * @author luxl
 *
 */
public class UniversalMsg {

    private static ResourceBundle rb_ch = ResourceBundle.getBundle("messages",Locale.CHINA);

    private static ResourceBundle rb_en = ResourceBundle.getBundle("messages", Locale.US);

    /**
     * @description 获取key的国际化字符串
     * @param locale 语种:中文(Locale.CHINA),英文(Locale.US)
     * @param key 要获取的字符串的key
     * @return
     * @throws Exception
     */
    public static String getString(Locale locale, String key) throws Exception{
        if(key!=null && (!key.trim().isEmpty())){
            if(locale.equals(Locale.CHINA)){
                return rb_ch.getString(key);
            }else{
                return rb_en.getString(key);
            }
        }else{
            return "";
        }
    }

    /**
     * @description 获取key的中文字符串
     * @param key
     * @return
     * @throws Exception
     */
    public static String getString(String key) throws Exception{
        if(key!=null && (!key.trim().isEmpty())){
            return rb_ch.getString(key);
        }else{
            return "";
        }
    }

}

  3.应用举例:

try {
    String us_msg;
    us_msg = UniversalMsg.getString(Locale.US,"HelloWorld");
    us_msg = us_msg.replaceAll("@0", helloWorld.getMsg());
    us_msg = us_msg.replaceAll("@1", Calendar.getInstance().getTime().toString());
    System.out.println(us_msg);
} catch (Exception e) {
    // TODO Auto-generated catch block
    System.out.println("error");
    e.printStackTrace();
}  

注:如果没有找到相对应key的字符串,会抛出异常。

时间: 2024-11-05 00:59:08

Spring中后台字符串国际化的相关文章

第5章—构建Spring Web应用程序—关于spring中的validate注解后台校验的解析

关于spring中的validate注解后台校验的解析 在后台开发过程中,对参数的校验成为开发环境不可缺少的一个环节.比如参数不能为null,email那么必须符合email的格式,如果手动进行if判断或者写正则表达式判断无意开发效率太慢,在时间.成本.质量的博弈中必然会落后.所以把校验层抽象出来是必然的结果,下面说下几种解决方案. 1.简单的校验Demo 依赖: <dependency> <groupId>javax.validation</groupId> <

Spring学习系列(四)——Spring中的国际化

1.Java中的国际化国际化(Internationalization)简称 i18n,简单来说就是不同国家/地区/语言的用户,访问同一个程序,得到对应的本地化资源. 首先要确定国家/地区/语言(Locale类) 然后根据不同的Locale获取对应的本地化资源(locale敏感的). 而本地化资源相关的主要有两种:ResourceBundle和Format抽象类的子类.①Jdk为ResourceBundle抽象类提供了两个子类(ListResourceBundle和PropertyResourc

iOS工程中,汉字字符串的统一化管理(非国际化)

实现类似于安卓工程中的字符串引用机制,便于汉字字符串的统一管理. Step01:创建,步骤如下: Step02:定义,步骤如下图: Step03:使用: // 宏工具 // L10N为strings的名字, 不传默认为Localizable #define L10NString(key) [[NSBundle mainBundle]localizedStringForKey:key value:@"" table:@"L10N"] // 使用 NSString *h

Spring中ApplicationContext和beanfactory区别

BeanFacotry是spring中比较原始的Factory.如XMLBeanFactory就是一种典型的BeanFactory.原始的BeanFactory无法支持spring的许多插件,如AOP功能.Web应用等.   ApplicationContext接口,它由BeanFactory接口派生而来,因而提供BeanFactory所有的功能.ApplicationContext以一种更向面向框架的方式工作以及对上下文进行分层和实现继承,ApplicationContext包还提供了以下的功

用IDEA详解Spring中的IoC和DI(挺透彻的,点进来看看吧)

用IDEA详解Spring中的IoC和DI 一.Spring IoC的基本概念 控制反转(IoC)是一个比较抽象的概念,它主要用来消减计算机程序的耦合问题,是Spring框架的核心.依赖注入(DI)是IoC的另外一种说法,只是从不同的角度描述相同的概念.看完这两句,是不是不但没懂,反而更迷惑了,别急,往下看: IoC的背景 我们都知道,在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最终实现系统的业务逻辑. 如果我们打开机械式手表的后盖,就会看到与

Velocity初探小结--Velocity在spring中的配置和使用

最近正在做的项目前端使用了Velocity进行View层的数据渲染,之前没有接触过,草草过了一遍,就上手开始写,现在又回头细致的看了一遍,做个笔记. velocity是一种基于java的模板引擎技术,有点类似与JSP,它允许页面设计者引用Java中定义的方法.前端页面设计者和后端Java开发者能够同时使用MVC的模式开发网站,这样前端能够把精力放在页面的设计上,后端也可以把精力放在代码开发上.Velocity把Java代码从Web页面中分离, 使网站可维护性更强. 注:项目使用的是Spring+

搜索文件或目录中包含字符串的文件 java小程序

package com.ruishenh.spring.test; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.Enumeration; import java.

Spring中的AOP(五)——在Advice方法中获取目标方法的参数

摘要: 本文介绍使用Spring AOP编程中,在增强处理方法中获取目标方法的参数,定义切点表达式时使用args来快速获取目标方法的参数. 获取目标方法的信息 访问目标方法最简单的做法是定义增强处理方法时,将第一个参数定义为JoinPoint类型,当该增强处理方法被调用时,该JoinPoint参数就代表了织入增强处理的连接点.JoinPoint里包含了如下几个常用的方法: Object[] getArgs:返回目标方法的参数 Signature getSignature:返回目标方法的签名 Ob

Spring中Quartz定时器

Quartz是一个强大的企业级任务调度框架,Spring中继承并简化了Quartz,下面就看看在Spring中怎样配置Quartz: 首先我们来写一个被调度的类: package com.kay.quartz; public class QuartzJob { public void work()      {      System.out.println("Quartz的任务调度!!!");      } } Spring的配置文件: <?xml version="