`

MessageUtils:ResourceBundle访问properties文件

    博客分类:
  • Java
 
阅读更多
一个简单的ResourceBundle 例子

package com.app;

import java.io.Serializable;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.MissingResourceException;
import java.util.ResourceBundle;

import org.apache.commons.lang.StringUtils;

public class MessageUtils implements Serializable{

	/**
	 * @param args
	 */
	private static String locale;	
	private static ResourceBundle bind;
	private static String baseName;
	
	
	public static String getBaseName() {
		return baseName;
	}
	public static void setBaseName(String baseName) {
		MessageUtils.baseName = baseName;
		bind = null;
	}
	public static String getMessage(String key){
		String message = null;
		try {
			message = getBind().getString(key);
		} catch (MissingResourceException e) {
			return "@@ Not found message for key="+key;
		}
		if(StringUtils.isBlank(message)) return "@@ Not found message for key="+key;
		return message;
	}
	public static String getMessage(String key,Map<String,String> values){
		String message = null;
		try {
			message = getBind().getString(key);
		} catch (MissingResourceException e) {
			return "@@ Not found message for key="+key;
		}
		if(StringUtils.isBlank(message)) return "@@ Not found message for key="+key;
		if(values==null) return message;
		Iterator it = values.keySet().iterator();
		while(it.hasNext()){
			String paraName = it.next().toString();
			key.replaceAll("{"+paraName+"}", values.get(paraName).toString());
		}
		return message;
	}
	public static String getMessage(String key,String[] values){
		String message = null;
		try {
			message = getBind().getString(key);
		} catch (MissingResourceException e) {
			return "@@ Not found message for key="+key;
		}
		if(StringUtils.isBlank(message)) return "@@ Not found message for key="+key;
		if(values==null||values.length==0) return message;
		for(int i=0; i<values.length; i++){
			key.replaceAll("{"+i+"}", values[i]);
		}		
		return message;
	}
	public static String getMessage(String key,List<String> values){
		String message = null;
		try {
			message = getBind().getString(key);
		} catch (MissingResourceException e) {
			return "@@ Not found message for key="+key;
		}
		if(StringUtils.isBlank(message)) return "@@ Not found message for key="+key;
		if(values==null||values.size()==0) return message;
		for(int i=0; i<values.size(); i++){
			key.replaceAll("{"+i+"}", values.get(i));
		}		
		return message;
		
	}
	
	public String getLocale() {
		return locale;
	}
	public void setLocale(String locale) {
		this.locale = locale;
	}

	private static ResourceBundle getBind() {
		if(baseName==null) baseName = "locale.message";
		if (bind == null) {
			if (locale == null || locale.equals(""))
				//src/locale/message.properties
				bind = ResourceBundle.getBundle(baseName);
			else
				bind = ResourceBundle.getBundle(baseName + locale);
		}
		return bind;

	}
	public void setBind(ResourceBundle bind) {
		this.bind = bind;
	}
	
	public void reset(){
		bind = null;
		baseName = null;
		
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println(MessageUtils.getMessage("com.s2s3h3.app.testMessage",new String[]{"aaa","bbb"}));
		
		MessageUtils.setBaseName("struts");
		System.out.println(MessageUtils.getMessage("struts.login.pageName"));

	}

}

分享到:
评论

相关推荐

    ResourceBundle与Properties读取maven中resources目录下的资源文件

    ### ResourceBundle与Properties读取Maven中Resources目录下的资源文件 #### 一、概述 在Java开发过程中,我们经常需要读取资源文件中的配置信息。在Maven项目中,`src/main/resources`目录下通常存放了各种配置...

    使用J2SE API读取Properties文件的六种方法

    `ResourceBundle`是用于国际化和本地化资源的工具,可以通过`getBundle()`方法加载Properties文件。例如: ```java String name = "config"; ResourceBundle rb = ResourceBundle.getBundle(name, Locale.get...

    properties文件国际化插件

    在Java程序中,我们可以使用`ResourceBundle`类来加载和访问这些资源。 这个"properties文件国际化插件"的安装过程可能包括以下步骤: 1. 如果是IDE集成,如Eclipse或IntelliJ IDEA,可以在插件市场中搜索插件并...

    java实现properties文件读取

    在Java编程中,Properties文件是用于存储配置信息的文本文件,通常以键值对的形式存在。这些文件在程序运行时可以被加载并解析,以便应用根据配置内容进行动态行为调整。本篇将深入探讨如何使用Java来实现Properties...

    properties文件的读取

    1. **创建properties文件** 创建一个名为`config.properties`的文件,内容如下: ``` username=admin password=123456 database.url=jdbc:mysql://localhost:3306/mydb ``` 2. **加载properties文件** 使用`...

    MyEclipse中Properties文件插件

    通过在代码中使用ResourceBundle类,可以根据用户设置的语言自动加载相应的Properties文件,实现应用程序的国际化。 - 在MyEclipse中,可以方便地在不同语言版本的Properties文件间切换,确保翻译的一致性。 5. ...

    国际化插件-ResourceBundle Editor

    这比直接在源代码或properties文件中编辑更加方便快捷。 2. **多语言支持**:该插件允许开发者同时管理多个语言版本的ResourceBundle,便于进行对比和翻译工作。开发者可以快速查看并切换不同语言的资源,确保每个...

    Java读取含中文key的properties文件

    在Java编程中,Properties文件是用于存储配置信息的文本文件,通常包含键值对,其中键和值之间用等号(=)或冒号(:)分隔。当我们需要处理包含中文键的Properties文件时,可能会遇到编码问题,因为默认的ISO-8859-1...

    读取Properties文件的六种方法

    ### 读取Properties文件的六种方法 在Java开发中,`Properties`文件是一种非常常见的配置文件格式,它主要用于存储程序的各种配置信息。通过不同方式读取这些配置信息,可以提高程序的灵活性与可维护性。本文将详细...

    读取以及修改properties文件

    在Java编程中,Properties文件是用于存储配置信息的文本文件,通常以.properties为扩展名。这些文件包含了应用程序运行时所需的键值对,如数据库连接字符串、API密钥或系统设置等。本篇将深入探讨如何读取和修改...

    MyEclipse中properties文件支持中文的解决办法

    总的来说,解决MyEclipse中.properties文件支持中文的问题,主要通过安装和使用PropEdit和ResourceBundle Editor这两个插件,它们能提供对中文字符的完美支持,使得开发者在处理国际化资源时更加得心应手。...

    Xml ResourceBundle简单实现

    在实际项目中,我们可以通过以下方式使用Xml ResourceBundle: 1. 配置国际化:根据用户的locale信息,动态加载相应的XML资源文件。 2. 获取资源:使用`ResourceBundle.getString()`或其他方法获取资源值,如`...

    Properties插件文件

    Properties文件在IT行业中,特别是在Java开发中扮演着重要的角色。它们主要用于存储应用程序的配置信息,如国际化(i18n)字符串、数据库连接参数、系统设置等。在MyEclipse这样的集成开发环境中,Properties文件...

    propertiesEditor

    总的来说,解决`myeclipse10 properties文件中文显示`的问题,需要关注文件编码、内容格式、编辑器配置以及Java代码中的资源加载等多个方面。掌握这些知识点,将有助于提升在多语言项目中的开发效率和质量。在...

    加载properties配置文件的几种方法

    Properties文件通常用于存储应用的配置参数,如数据库连接信息、系统设置等。本文将深入探讨在SSM框架下加载properties配置文件的几种常见方法。 1. **使用Spring的PropertyPlaceholderConfigurer** Spring提供了`...

    Java读取Properties文件的六种方法.txt

    ### Java读取Properties文件的六种方法 在Java开发中,`Properties`类是一个非常实用且常见的工具类,主要用于管理程序中的配置信息。通常情况下,这些配置信息会被存储在一个`.properties`文件中,并通过`...

    Java语言对properties资源文件的处理

    一旦确定了文件位置,就可以通过调用`ResourceBundle.getBundle()`方法来加载properties文件,并创建一个`ResourceBundle`对象。这个对象可以用来访问文件中的键值对: ```java ResourceBundle resource = ...

    java 读properties 文件六种方法

    `ResourceBundle`提供了一种基于本地化的资源访问机制,但也可以用于读取Properties文件。此方法适用于资源文件存储在类路径中。 ```java import java.util.ResourceBundle; public class ResourceBundleReader { ...

    Java读取Properties文件的六种方法

    ### Java读取Properties文件的六种方法 在Java开发中,`Properties` 文件常用于存储配置信息,如数据库连接字符串、应用配置等。正确且高效地读取这些配置文件对于程序运行至关重要。本文将详细介绍六种不同的方法...

    API读取Properties文件的六种方法

    ### API读取Properties文件的六种方法 在Java开发中,`Properties` 文件常用于存储配置信息,如数据库连接字符串、应用配置等。通过API读取这些文件是开发者经常遇到的任务之一。本文将详细介绍六种使用J2SE API...

Global site tag (gtag.js) - Google Analytics