Struts 国际化编码和Jstl国际化

来源:互联网 发布:js url dencode 编辑:程序博客网 时间:2024/06/08 17:50
  1. Struts 国际化编码和Jstl国际化
  2. ApplicationResources_en.properties  英文
  3. test=international application test {0}
  4. ApplicationResources_zh.properties  中文
  5. test=/u56fd/u9645/u5316/u7a0b/u5e8f/u6d4b/u8bd5 {0}
  6. 路径对应好 文件名不用改变
  7. <message-resources parameter="com.struts.ApplicationResources" />
  8. test.jsp:
  9. <%@ page language="java" pageEncoding="UTF-8"%>
  10. <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
  11. <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
  12. <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
  13. <%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>
  14. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
  15. <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="f"%>
  16. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  17. <html:html>
  18.   <head>
  19.     <html:base />
  20.  </head>
  21.   <body>
  22.   <f:setLocale value="zh"/>  //手动设置语言版本
  23.   <f:setBundle basename="com.struts.ApplicationResources"></f:setBundle>
  24.   <f:message key="test">
  25.   <f:param value="good"/>
  26.   </f:message>
  27. //以上是Jstl的邦定
  28. //-------------------------------------------
  29. //以下是Stuts的邦定
  30.     <bean:message key="test" arg0="好" />
  31.   </body>
  32. </html:html>
  33. 转:
  34. Struts国际化处理二
  35. 对于使用者来说,一个支持国际化的WEB程序具有下面几种形式
  36. 1. 根据用户浏览器自动设置显示的语言(无需用户干预)
  37. 2. 提供用户选择,用户根据自己的需要决定使用何种语言显示
  38. 3. 结合前两种.系统自动选择一种语言,但同时提供用户根据需要选择
  39. 使用Struts开发国际化程序是一件非常便利的事情,我们来看前两种怎么来实现
  40. 1. 这是最简单的方式,你不需要修改任何程序,只需要把资源文件按照各个语言翻译一遍并把这些文件
  41. 按照国际化程序的要求命名好放置同一个目录即可. 例如 ApplicationResource_en_US.properties 
  42. ApplicationResource_zh_TW.properties . 这种方式虽然自动的给用户设置好要显示的语言,但是有时
  43. 候由于浏览器本身的问题,或者用户自己想看其他语种的时候就没有办法.
  44. 2. 这是比较常见的方式,由用户自己来选择所要显示的语言. 一般的情况是在首页或者登录页上增加语
  45. 言的选项,用户选中其中一种登录后即以用户选择的语言进行显示,但是用户登录后必须把用户所选择的
  46. 语言保存起来并让程序也就是<bean:message这些标签可以使用所选择的语言加载配置信息,因此在用户
  47. 登录执行的Action类中加入如下代码
  48. Locale locale = new Locale(request.getParameter("locale"));
  49. //TODO:判断locale的有效性,无效的话不存入到sesssion中
  50. req.getSession().setAttribute(Globals.LOCALE_KEY,locale);
  51. 好了,现在<bean:message/>这个标签库现在就可以根据你保存在session中的Locale对象来决定加载的
  52. 是哪种语言, 通过看<bean:message/>标签库的源码我们就可以一目了然知道该标签库在加载资源前先
  53. 从session或者该Locale对象,如果为空则使用request.getLocale()这个值来加载对应语言的资源,因此
  54. 这种做法实际上是实现了前面提到的第三种形式. 接下来就是翻译资源文件,有如第一步讲到的.
  55. Struts框架在实现国际化应用程序的时候还是替我们想的很周到,因此你所需要做的就是翻译.
  56. 最后切记两点:
  57. 1. 页面的字符集必须是UTF-8,例如:
  58. <%@ page language="java" contentType="text/html;charset=UTF-8" %>
  59. 2. 另外页面的所有的提示信息都应该在资源文件中定义