JSP多语言第一种

来源:互联网 发布:ehviewer 网络错误 编辑:程序博客网 时间:2024/06/07 23:09

以jsp页面title举例:

读取多语言肯定要放在properties中,并且通过后台读取properties对应的键返回其值,则jsp页面需要引入类:

<%@page import="com.mytest.sys.config.SysTextConfig"%>
这里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 blocke.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;      }   }