以jsp頁面title舉例:
讀取多語言肯定要放在properties中,並且通過後台讀取properties對應的鍵返回其值,則jsp頁面需要引入類:
<%@page import="com.mytest.sys.config.SysTextConfig"%> <%@page import="com.mytest.sys.config.SysTextConfig"%>這裡SysTextConfig類處理多語言
<title><%=SysTextConfig.getConfigInfo("bsd_text")+SysTextConfig.getConfigInfo("title")%></title>
<title><%=SysTextConfig.getConfigInfo("bsd_text")+SysTextConfig.getConfigInfo("title")%></title>
SysTextConfig類的內容為
public class SysTextConfig {
private static Properties properties =null;//讀取properties的資源文件
private static long lastModified=0;//內存中上次修改的時間 long型
private static String filePath=null;//保存properties文件的絕對路徑
private static File sysConfigFile=null;
static {//初始化static變量的值
StringBuffer configFilePath = new StringBuffer();
String classPath= SysTextConfig.class.getClassLoader().getResource("").getPath();
String weninfoPath = classPath.substring(0,classPath.lastIndexOf("classes"));
configFilePath.append(weninfoPath).append("config");
configFilePath.append(File.separator).append("sysText.properties");
filePath=configFilePath.toString();
}
private static boolean isNotlastModified(){
sysConfigFile= new File(filePath);
if( sysConfigFile.lastModified()!=lastModified)
return true;
return false;
}
private static void loadSysConfigFile(){
properties = new Properties();
FileInputStream fileInputStream;
try {
fileInputStream = new FileInputStream(sysConfigFile);
properties.load(fileInputStream);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static String getConfigInfo(String key) {
//函數入口,首先校驗properties文件的最近以次修改時間,如果不為0 則代表其修改過 則要再次加載loadSysConfigFile
if(isNotlastModified()) loadSysConfigFile();
Object object = properties.get(key); //讀取properties的鍵
String value ="";
try {
if(StringUtils.isNotEmpty(object)){
value = new String(object.toString().getBytes("ISO8859_1"));//通過鍵返回其值
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return value;
}
}
public class SysTextConfig {
private static Properties properties =null;//讀取properties的資源文件
private static long lastModified=0;//內存中上次修改的時間 long型
private static String filePath=null;//保存properties文件的絕對路徑
private static File sysConfigFile=null;
static {//初始化static變量的值
StringBuffer configFilePath = new StringBuffer();
String classPath= SysTextConfig.class.getClassLoader().getResource("").getPath();
String weninfoPath = classPath.substring(0,classPath.lastIndexOf("classes"));
configFilePath.append(weninfoPath).append("config");
configFilePath.append(File.separator).append("sysText.properties");
filePath=configFilePath.toString();
}
private static boolean isNotlastModified(){
sysConfigFile= new File(filePath);
if( sysConfigFile.lastModified()!=lastModified)
return true;
return false;
}
private static void loadSysConfigFile(){
properties = new Properties();
FileInputStream fileInputStream;
try {
fileInputStream = new FileInputStream(sysConfigFile);
properties.load(fileInputStream);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static String getConfigInfo(String key) {
//函數入口,首先校驗properties文件的最近以次修改時間,如果不為0 則代表其修改過 則要再次加載loadSysConfigFile
if(isNotlastModified()) loadSysConfigFile();
Object object = properties.get(key); //讀取properties的鍵
String value ="";
try {
if(StringUtils.isNotEmpty(object)){
value = new String(object.toString().getBytes("ISO8859_1"));//通過鍵返回其值
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return value;
}
}