jstl <fmt:setLocale>標籤

2019-10-16 22:12:13

<fmt:setLocale>標籤用於在locale組態變數中儲存給定的區域設定。

屬性

<fmt:setLocale>標籤具有以下屬性 -

屬性 描述 必需 預設
value 指定表示ISO-639語言程式碼和ISO-3166國家程式碼的兩部分程式碼。 en_US
variant 瀏覽器特定的變體
scope 區域組態變數的範圍

範例

資源系結包包含區域特定的物件,資源系結包含鍵/值對。當程式需要特定於區域設定的資源時,可以將所有鍵保留在所有區域設定中,也可以使用特定於區域設定的翻譯值。 資源系結包有助於提供特定於區域設定的內容。

Java資源包檔案包含一系列鍵到字串的對映。這裡使用的方法是建立擴充套件java.util.ListResourceBundle類的Java類。必須編譯這些類檔案並使其可用於Web應用程式的類路徑(使用Eclipse不需要此操作)。

下面定義一個資源系結包如下 -

檔案:Example_Cn.java -

package com.yiibai;

import java.util.ListResourceBundle;

public class Example_Cn extends ListResourceBundle {
    public Object[][] getContents() {
        return contents;
    }

    static final Object[][] contents = { { "count.one", "一個" }, { "count.two", "兩個" }, { "count.three", "三個" }, };
}

下面是顯示JSP頁面的程式碼 -

檔案:fmt_setLocale.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<%@ 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標籤</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

</head>

<body>
    <div style="margin: auto; width: 80%">
        <fmt:setLocale value="zh_cn" />
        <fmt:formatNumber value="101000.3" type="currency" />
        <br />
        <fmt:setLocale value="en_Us" />
        <fmt:formatNumber value="101000.3" type="currency" />
        <br />

        <fmt:setLocale value="zh_cn" />
        <fmt:formatDate value="<%=new Date()%>" />
        <br />
        <fmt:setLocale value="zh_tw" />
        <fmt:formatDate value="<%=new Date()%>" />
        <fmt:setLocale value="zh_cn" />
        <fmt:formatDate value="<%=new Date()%>" />
        <br />
        <fmt:setLocale value="de_de" />
        <fmt:formatDate value="<%=new Date()%>" />
        <br />

        <!-- Change the Locale -->
        <fmt:setLocale value="zh_cn" />
        <fmt:bundle basename="com.yiibai.Example_Cn">

            <fmt:message key="count.one" />
            <br />
            <fmt:message key="count.two" />
            <br />
            <fmt:message key="count.three" />
            <br />
        </fmt:bundle>

    </div>
</body>
</html>

編譯上述的Example_Cn,現在可以使用以下JSTL標籤來顯示以下三個數位,程式碼執行結果如下 -

可通過檢視<fmt:bundle<setBundle標籤來了解完整的概念。