目录

<fmt:setLocale>

《fmt:setLocale》标记用于在给定语言环境配置变量中存储给定的语言环境。

属性 (Attribute)

《fmt:setLocale》标记具有以下属性 -

属性 描述 需要 默认
Value 指定由两部分组成的代码,表示ISO-639语言代码和ISO-3166国家/地区代码。 Yesen_US
variant 特定于浏览器的变体 NoNone
scope 语言环境配置变量的范围 NoPage

例子 (Example)

资源包包含特定于语言环境的对象。 资源包包含键/值对。 当您的程序需要特定于语言环境的资源时,您将保留所有语言环境共有的所有键,但您可以具有特定于语言环境的已翻译值。 资源包有助于提供特定于区域设置的内容。

Java资源包文件包含一系列key-to-string mappings 。 我们关注的方法涉及创建扩展java.util.ListResourceBundle类的已编译Java类。 您必须编译这些类文件,并使它们可用于Web应用程序的类路径。

让我们定义一个默认资源包,如下所示 -

package com.iowiki;
import java.util.ListResourceBundle;
public class Example_En extends ListResourceBundle {
   public Object[][] getContents() {
      return contents;
   }
   static final Object[][] contents = {
      {"count.one", "One"},
      {"count.two", "Two"},
      {"count.three", "Three"},
   };
}

现在让我们定义一个我们将用于西班牙语语言环境的资源包 -

package com.iowiki;
import java.util.ListResourceBundle;
public class Example_es_ES extends ListResourceBundle {
   public Object[][] getContents() {
      return contents;
   }
   static final Object[][] contents = {
      {"count.one", "Uno"},
      {"count.two", "Dos"},
      {"count.three", "Tres"},
   };
}

让我们编译上面的类Example.classExample_es_ES.class ,并使它们在Web应用程序的CLASSPATH中可用。 您现在可以使用以下JSTL标记来显示三个数字,如下所示 -

<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>
<%@ taglib uri = "http://java.sun.com/jsp/jstl/fmt" prefix = "fmt" %>
<html>
   <head>
      <title>JSTL fmt:setLocale Tag</title>
   </head>
   <body>
      <fmt:bundle basename = "com.iowiki.Example">
         <fmt:message key = "count.one"/><br/>
         <fmt:message key = "count.two"/><br/>
         <fmt:message key = "count.three"/><br/>
      </fmt:bundle>
      <!-- Change the Locale -->
      <fmt:setLocale value = "es_ES"/>
      <fmt:bundle basename = "com.iowiki.Example">
         <fmt:message key = "count.one"/><br/>
         <fmt:message key = "count.two"/><br/>
         <fmt:message key = "count.three"/><br/>
      </fmt:bundle>
   </body>
</html>

上面的代码将生成以下结果 -

One 
Two 
Three
Uno
Dos
Tres

检查《fmt:bundle》《setBundle》标签以了解完整的概念。

↑回到顶部↑
WIKI教程 @2018