English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Стандартная библиотека тегов JSP
Тег <fmt:bundle> делает доступными указанные ресурсы束 для тегов <fmt:message>, находящихся в теге <fmt:bundle>. Это позволяет вам пропустить много шагов, связанных с указанием ресурсного束 для каждого тега <fmt:message>.
Для примера, следующие два блока <fmt:bundle> генерируют одинаковый вывод:
<fmt:bundle basename="com.w3codebox.Example"> <fmt:message key="count.one"/> </fmt:bundle> <fmt:bundle basename="com.w3codebox.Example" prefix="count."> <fmt:message key="title"/> </fmt:bundle>
<fmt:bundle baseName="<string>" prefix="<string>"/>
У тега <fmt:bundle> есть следующие атрибуты:
Атрибут | Описание | Обязателен ли | Default value |
---|---|---|---|
basename | Укажите базовое имя ресурсного набора, который будет загружен | Да | Нет |
prefix | Укажите префикс атрибута key тега <fmt:message> | Нет | Нет |
Ресурсный набор содержит объекты, специфичные для региона. Ресурсный набор содержит пары ключ-значение. Когда ваш программный продукт требует ресурсов, специфичных для региона, все ключевые пары могут быть общими для всех регионов, но также можно определить преобразованные значения для каждого региона. Ресурсный набор помогает предоставлять содержимое для каждого региона.
Файл Java ресурсного набора содержит множество пар ключ-значение. Методы, на которые мы фокусируемся, связаны с созданием компилированных Java классов, наследующих java.util.ListResourceBundle. Вам нужно компилировать эти классы и поместить их в CLASSPATH вашего веб-приложения.
Давайте определим базовый ресурсный набор:
package com.w3codebox; 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"}, }; }
Компилируйте эти файлы в Example.class, затем поместите их в место, доступное по CLASSPATH в вашем веб-приложении. Теперь вы можете использовать JSTL для отображения этих трёх чисел, например:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"% <%@ 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>Тег fmt:bundle JSTL</title> </head> <body> <fmt:bundle basename="com.w3codebox.Example" prefix="count."> <fmt:message key="one"/><br/> <fmt:message key="two"/><br/> <fmt:message key="three"/><br/> </fmt:bundle> </body> </html>
Результат выполнения таков:
Один Два Три
Измените его на без свойств prefix:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"% <%@ 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>Тег fmt:bundle JSTL</title> </head> <body> <fmt:bundle basename="com.w3codebox.Example"> <fmt:message key="count.one"/><br/> <fmt:message key="count.two"/><br/> <fmt:message key="count.three"/><br/> </fmt:bundle> </body> </html>
Результат выполнения таков:
Один Два Три
можно увидеть<fmt:setLocale>и<fmt:setBundle>Чтобы получить больше информации.