Thẻ <fmt:setLocale> được sử dụng để lưu locale đã cho vào biến cấu hình locale.
Các thuộc tính
Thẻ <fmt:setLocale> có các thuộc tính sau:
| Thuộc tính | Mô tả | Bắt buộc | Mặc định |
|---|---|---|---|
| value | Chỉ định mã hai phần đại diện cho mã ngôn ngữ ISO-639 và mã quốc gia ISO-3166. | Có | en_US |
| variant | Biến thể cụ thể của trình duyệt | Không | Không có |
| scope | Phạm vi của biến cấu hình locale | Không | Page |
Ví dụ
Resource bundle chứa các đối tượng cụ thể cho locale. Resource bundle chứa các cặp khóa/giá trị. Khi chương trình của bạn cần tài nguyên cụ thể cho locale, bạn giữ tất cả các khóa chung cho tất cả các locale nhưng bạn có thể có các giá trị đã dịch cụ thể cho locale. Resource bundle giúp cung cấp nội dung cụ thể cho locale.
Một file resource bundle Java chứa một loạt ánh xạ khóa-chuỗi. Phương pháp chúng ta tập trung vào liên quan đến việc tạo các lớp Java đã biên dịch mở rộng lớp java.util.ListResourceBundle. Bạn phải biên dịch các file lớp này và làm cho chúng có sẵn trong classpath của ứng dụng web của bạn.
Hãy định nghĩa một resource bundle mặc định như sau:
package com.tutorialspoint;
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"},
};
}
Hãy định nghĩa thêm một resource bundle cho locale tiếng Tây Ban Nha:
package com.tutorialspoint;
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"},
};
}
Hãy biên dịch các lớp Example.class và Example_es_ES.class trên và làm cho chúng có sẵn trong CLASSPATH của ứng dụng web của bạn. Bây giờ bạn có thể sử dụng các thẻ JSTL sau để hiển thị ba số như sau:
<%@ taglib uri = "https://java.sun.com/jsp/jstl/core" prefix = "c" %> <%@ taglib uri = "https://java.sun.com/jsp/jstl/fmt" prefix = "fmt" %> <html> <head> <title>Thẻ JSTL fmt:setLocale</title> </head> <body> <fmt:bundle basename = "com.tutorialspoint.Example"> <fmt:message key = "count.one"/><br/> <fmt:message key = "count.two"/><br/> <fmt:message key = "count.three"/><br/> </fmt:bundle> <!-- Thay đổi Locale --> <fmt:setLocale value = "es_ES"/> <fmt:bundle basename = "com.tutorialspoint.Example"> <fmt:message key = "count.one"/><br/> <fmt:message key = "count.two"/><br/> <fmt:message key = "count.three"/><br/> </fmt:bundle> </body> </html>
Mã trên sẽ tạo ra kết quả sau:
One Two Three Uno Dos Tres