项目是struts1的,一个老项目的代码,要做一个演示项目,就拿来用用,其中需要国际化,用struts1自带的国际化策略对页面上的网页元素解决掉了。但是因为项目比较紧,所以很多新增加的功能都加在了jsp页面上,于是jsp页面就出现了若干的<%...%>。其中的Java代码无法利用struts1提供的机制去国际化。

所以有了下面的类:

  1. /**   
  2. *对jsp页面中出现的java代码中的汉字进行国际化   
  3. */package com.platform.I18N;   
  4. import java.util.MissingResourceException;   
  5. import java.util.ResourceBundle;   
  6. import javax.servlet.http.HttpServletRequest;   
  7. import com.platform.common.PropertiesHelper;     
  8. public class MessageResource {       
  9. public static String getString(HttpServletRequest request, String file, String key){           
  10. String ret = "";           
  11. String prefix = "";           
  12. //得到浏览器当前的语言 至于为什么后面会有个substring,有兴趣的可以试试           
  13. String language = (String)request.getHeader("accept-language").substring(0,2);           
  14. //读取配置文件,           
  15. PropertiesHelper helper = new PropertiesHelper();           
  16. String resourceName = helper.getPropertise4FileNodename("MessageResource.properties", file);           
  17. //下面的代码要求配置文件表明了对国际化配置文件的格式要求           
  18. if ("zh".equals(language)){               
  19. prefix = "_zh_CN";           
  20. }else if ("en".equals(language)){               
  21. prefix = "_en_US";           
  22. }           
  23. //读取配置文件中的键值对           
  24. ResourceBundle Resource_Bundle = ResourceBundle.getBundle(resourceName+prefix);           
  25. try{               
  26. ret = Resource_Bundle.getString(key);           
  27. }catch(MissingResourceException e){               
  28. e.printStackTrace();           
  29. }           
  30. return ret;       
  31. } } 

代码中注释已经很清楚。。。过段时间来,祈祷还能看懂。。。

 

小菜社区:http://www.itcaicai.com