JSP <fmt:setLocale> 标签

发布时间:2019-06-24 23:32     分类:JSP

<fmt:setLocale>标签用来将给定的区域存储在locale配置变量中。


属性

<fmt:setLocale>标签有如下属性:

属性 描述 是否必要 默认值
value 指定ISO-639 语言码和ISO-3166 国家码 en_US
variant 特定浏览器变体
scope Locale配置变量的作用域 Page

程序示例

资源束包含区域特定对象。资源束包含键值对。当您的程序需要区域特定资源时,可以将所有的关键词对所有的locale共享,但是也可以为locale指定转换后的值。资源束可以帮助提供指定给locale的内容。

一个Java资源束文件包含一系列的键值对。我们所关注的方法涉及到创建继承自java.util.ListResourceBundle 类的已编译Java类。您必须编译这些类然后放在您的Web应用程序的CLASSPATH中。

让我们来定义一个默认的资源束:


  1. package com.tutorialspoint;
  2. import java.util.ListResourceBundle;
  3. public class Example_En extends ListResourceBundle {
  4. public Object[][] getContents() {
  5. return contents;
  6. }
  7. static final Object[][] contents = {
  8. {"count.one", "One"},
  9. {"count.two", "Two"},
  10. {"count.three", "Three"},
  11. };
  12. }

现在,再定义一个资源束,用于Spanish Locale:


  1. package com.tutorialspoint;
  2. import java.util.ListResourceBundle;
  3. public class Example_es_ES extends ListResourceBundle {
  4. public Object[][] getContents() {
  5. return contents;
  6. }
  7. static final Object[][] contents = {
  8. {"count.one", "Uno"},
  9. {"count.two", "Dos"},
  10. {"count.three", "Tres"},
  11. };
  12. }

编译以上文件至Examble.class和Examble_es_ES.class中,然后将它们放在Web应用程序的CLASSPATH中。现在可以使用JSTL标签来显示这三个数字,就像这样:


  1. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
  2. <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
  3. <html>
  4. <head>
  5. <title>JSTL fmt:setLocale Tag</title>
  6. </head>
  7. <body>
  8. <fmt:bundle basename="com.tutorialspoint.Example">
  9. <fmt:message key="count.one"/><br/>
  10. <fmt:message key="count.two"/><br/>
  11. <fmt:message key="count.three"/><br/>
  12. </fmt:bundle>
  13. <!-- Change the Locale -->
  14. <fmt:setLocale value="es_ES"/>
  15. <fmt:bundle basename="com.tutorialspoint.Example">
  16. <fmt:message key="count.one"/><br/>
  17. <fmt:message key="count.two"/><br/>
  18. <fmt:message key="count.three"/><br/>
  19. </fmt:bundle>
  20. </body>
  21. </html>

运行结果如下:


  1. One
  2. Two
  3. Three
  4. Uno
  5. Dos
  6. Tres

查看<fmt:bundle>和<setBundle>来获取更多信息。

评论

推荐文章