📄 bsmessage.java
字号:
package com.cdb.gbms.loan.student.bs.exception;
import java.util.Locale;
import java.util.ResourceBundle;
/**
* 这个类封装了实现本地化信息的方法
*/
public class BSMessage implements BSLocalizableMessage {
private String resourceBundle;
private String messageKey;
private Object textInserts[];
/**
* 参数化本地信息
*
* @param s
* 是资源类名
* @param s1
* 是信息的键值
* @param aobj
* 是参数信息
*/
public BSMessage(String s, String s1, Object aobj[]) {
setLocalizedMessage(s, s1, aobj);
}
/**
* 插入参数值
*/
private static String insertKeys(String s, Object objs[]) {
StringBuffer sb = new StringBuffer();
int len = objs.length;
for (int i = 0; i < len; i++) {
int index = s.indexOf("*");
if (index == -1)
continue;
sb.append(s.substring(0, index));
if (objs[i] != null) {
sb.append(objs[i].toString());
} else {
sb.append(" ");
}
s = s.substring(index + 1);
}
if (s.indexOf("*") != -1)
s = s.replace('*', ' ');
sb.append(s);
return sb.toString();
}
/*
* 设置本地化信息 @param s 是资源类名 @param s1 是信息的键值 @param aobj 是参数信息
*/
protected void setLocalizedMessage(String s, String s1, Object aobj[]) {
resourceBundle = s;
messageKey = s1;
textInserts = aobj;
}
/*
* 构造实例获取本地化信息(按当前版本)
*/
public String getLocalizedMessage() {
return getLocalizedMessage(resourceBundle, messageKey, textInserts);
}
/*
* 构造实例获取本地化信息(按传入的Locale)
*/
public String getLocalizedMessage(Locale locale0) {
return getLocalizedMessage(resourceBundle, messageKey, textInserts,
locale0);
}
/*
* 根据传入的参数获取本地化信息(按当前版本) @param s 是资源类名 @param s1 是信息的键值 @param aobj 是参数信息
*/
public static String getLocalizedMessage(String s, String s1, Object aobj[]) {
return getLocalizedMessage(s, s1, aobj, null);
}
/*
* 根据传入的参数获取本地化信息(按传入的Locale) @param s 是资源类名 @param s1 是信息的键值 @param aobj
* 是参数信息 @param locale0 是Locale对象
*/
public static String getLocalizedMessage(String s, String s1,
Object aobj[], Locale locale0) {
String localeMess = null;
if (locale0 == null)
locale0 = Locale.CHINA;
String s3 = ResourceBundle.getBundle(s, locale0).getString(s1);
preProcess(aobj, locale0);
if (aobj == null)
localeMess = s3;
else
localeMess = insertKeys(s3, aobj);
return localeMess;
}
/*
* 预处理参数对象数组,如果有LocalizableMessage对象,先将其本地化(按传入的Locale)
*/
private static void preProcess(Object[] objs, Locale locale0) {
if (objs != null) {
for (int i = 0; i < objs.length; i++) {
if (objs[i] != null) {
if (objs[i] instanceof BSLocalizableMessage)
objs[i] = ((BSLocalizableMessage) objs[i])
.getLocalizedMessage(locale0);
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -