JSTL <fmt:setLocale>標簽
<fmt:setLocale> 標簽用於給定語言環境存儲在區域配置變量。
屬性:
<fmt:setLocale>一樣標簽具有以下屬性:
屬性 | 描述 | 必須 | 默認 |
---|---|---|---|
value | Specifies a two-part code that represents the ISO-639 language code and an ISO-3166 country code. | Yes | en_US |
variant | Browser-specific variant | No | None |
scope | Scope of the locale configuration variable | No | Page |
例子:
資源包包含特定於語言環境的對象。資源包包含鍵/值對。當程序需要特定於語言環境的資源,把所有的共同所有的語言環境中的密鑰,但可以有特定的語言環境轉換的值。資源包有助於提供內容具體的語言環境。
一個Java資源包文件包含一係列關鍵到字符串的映射。我們專注於該方法涉及到創建編譯的Java類來擴展java.util.ListResourceBundle類。你必須編譯這些類文件,並提供給Web應用程序的classpath中可用。
讓我們定義一個默認的資源包,如下所示:
package com.yiibai; 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.yiibai; 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.class和Example_es_ES.class,讓他們在Web應用程序的類路徑中。現在可以使用下麵的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.yiibai.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.yiibai.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> 標簽,了解完整的概念。