转载自:http://blog.csdn.net/haqer0825/article/details/9271147
以jsp页面title举例:
读取多语言肯定要放在properties中,并且通过后台读取properties对应的键返回其值,则jsp页面需要引入类:
- <%@page import="com.mytest.sys.config.SysTextConfig"%>
- <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;
- }
- }