JSP多语言第一种
以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; } }
补充:Web开发 , Jsp ,