以jsp页面title举例:
读取多语言肯定要放在properties中,并且通过后台读取properties对应的键返回其值,则jsp页面需要引入类:
[code ]<%@page import="com.mytest.sys.config.SysTextConfig"%>
<%@page import="com.mytest.sys.config.SysTextConfig"%>这里SysTextConfig类处理多语言[/code]
[code ]<title><%=SysTextConfig.getConfigInfo("bsd_text")+SysTextConfig.getConfigInfo("title")%></title>
<title><%=SysTextConfig.getConfigInfo("bsd_text")+SysTextConfig.getConfigInfo("title")%></title>
SysTextConfig类的内容为[/code]
[code ]public classSysTextConfig {
privatestatic Properties properties =null;//读取properties的资源文件
private staticlong lastModified=0;//
内存中上次修改的时间 long型
private staticString filePath=null;//保存properties文件的绝对路径
private staticFile sysConfigFile=null;
static{//初始化static变量的值
StringBuffer configFilePath = newStringBuffer();
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();
}
privatestaticboolean isNotlastModified(){
sysConfigFile= newFile(filePath);
if( sysConfigFile.lastModified()!=lastModified)
returntrue;
returnfalse;
}
privatestaticvoid loadSysConfigFile(){
properties = newProperties();
FileInputStream fileInputStream;
try{
fileInputStream = new FileInputStream(sysConfigFile);
properties.load(fileInputStream);
} catch(Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public staticString getConfigInfo(String key) {
//函数入口,首先校验properties文件的最近以次修改时间,如果不为0 则代表其修改过 则要再次加载loadSysConfigFile
if(isNotlastModified()) loadSysConfigFile();
Object object = properties.get(key); //读取properties的键
String value ="";
try{
if(StringUtils.isNotEmpty(object)){
value = newString(object.toString().getBytes("ISO8859_1"));//通过键返回其值
}
} catch(UnsupportedEncodingException e) {
e.printStackTrace();
}
returnvalue;
} }
public classSysTextConfig {
privatestatic Properties properties =null;//读取properties的资源文件
private staticlong lastModified=0;//内存中上次修改的时间 long型
private staticString filePath=null;//保存properties文件的绝对路径
private staticFile sysConfigFile=null;
static{//初始化static变量的值
StringBuffer configFilePath = newStringBuffer();
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();
}
privatestaticboolean isNotlastModified(){
sysConfigFile= newFile(filePath);
if( sysConfigFile.lastModified()!=lastModified)
returntrue;
returnfalse; }
privatestaticvoid loadSysConfigFile(){
properties = newProperties();
FileInputStream fileInputStream;
try{
fileInputStream = new FileInputStream(sysConfigFile);
properties.load(fileInputStream);
} catch(Exception e) {
// TODO Auto-generated catch block
e.printStackTrace(); }
}
public staticString getConfigInfo(String key) {
//函数入口,首先校验properties文件的最近以次修改时间,如果不为0 则代表其修改过 则要再次加载loadSysConfigFile
if(isNotlastModified()) loadSysConfigFile();
Object object = properties.get(key); //读取properties的键
String value =""; try{
if(StringUtils.isNotEmpty(object)){
value = newString(object.toString().getBytes("ISO8859_1"));//通过键返回其值
}
} catch(UnsupportedEncodingException e) {
e.printStackTrace(); }
returnvalue;
} }[/code]