Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Герц Д.М. -> "Java Server Pages. Библиотека профессионала" -> 67

Java Server Pages. Библиотека профессионала - Герц Д.М.

Герц Д.М. Java Server Pages. Библиотека профессионала — М.: Вильяме, 2002. — 448 c.
ISBN 5-8459-0290-8
Скачать (прямая ссылка): javaserverpages2002.pdf
Предыдущая << 1 .. 61 62 63 64 65 66 < 67 > 68 69 70 71 72 73 .. 147 >> Следующая


// Создание объекта Locale для Болгарии Locale locale - new LocaleC'BG", "") ;

В спецификации Servlet 2.2 к классу ServletResponse добавлены методы setLocale и getLocale. Метод setLocale устанавливает поле заголовка Content-Language и задает кодировку, соответствующую содержимому ответа. В листинге 8.3 демонстрируется использование данного метода для установки региона. Этот пример ныполнят тс жкч- действия, что и код и листинге Н.Ч, и котором поле заголовка Content-Language и кодировка устанавливаются явно.

Листинг 8.3. Установка данных о регионе в составе ответа

<htmlxheadxtitle>Character Sets</title>

<% response.setLocale(java.util.Locale.KOREAN); %> </head>

<body>

<%= "\uc548\ubl55\ud558\ucl38\uc694" %>>

</body>

</html>

Внешне данный документ выглядит так, как показано на рис. 8.2.

Наборы ресурсов

Теперь вы знаете, как использовать управляющие последовательности Unicode для отображения символов, специфических для конкретного языка, и как указывать кодировки для отображения текста на языках, в которых используются символы, отличные от латинских. Мы также рассмотрели создание объектов Locale, соответствующих географическим, политическим и культурным регионам. Остается выяснить, как локализовать данные в вашем Web-приложении.

Задача локализации может быть решена двумя способами. Проще всего создать отдельные JSP-документы для различных регионов. Однако данный подход приводит к затрате больших усилий на этапе сопровождения, так как при этом необходимо одновременно вносить изменения сразу в несколько JSP-документов. Это не означает, что такое решение неприемлемо в любой ситуации. Если для разных регионов надо создавать различные программы, логично разместить их в разных документах.
Наборы ресурсов 203

В большинстве случаев задачу локализации лучше всего решать, вынося информацию, чувствительную к региону, за пределы JSP-документа. При этом один JSP-документ используется для разных регионов, а информация, специфическая для конкретного региона, извлекается из хранилища. Это хранилище называется набором ресурсов.

Набор ресурсов, поддерживаемый посредством класса j ava. util. Resource-Bundle, представляет собой хэш-таблицу, в которой содержатся пары ключ-значение. Ключом набора ресурсов является строка, которая однозначно идентифицирует ресурс. Значением может быть любой Java-объект, однако чаще всего в качестве значения применяется строка или массив строк, представляющие информацию для конкретного региона. Наиболее часто используемые методы класса ResourceBundle перечислены ниже.

• static ResourceBundle getBundle(String base)

• static ResourceBundle getBundle[String base, Locale)

• Object getObject(String key)

• String get String (String key)

• String[] getStringArray(String key)

Первые два из приведенных выше методов, объявленные как static, возвращают объект ResourceBuncile. Первый метод начинает поиск, используя регион по умолчанию, а при вызове второго метода ему передается объект Locale. Если набор ресурсов, связанный с указанным регионом, не может быть найден, второй метод продолжает поиск с использованием региона по умолчанию.

Оба указанных метода ищут наборы ресурсов с именами, представленными в формате package.Bundle_la_C0_va, где package.Bundle— это базовое имя, которое задается посредством параметра base, la — двухбуквенное обозначение языка, СО — двухбуквенное обозначение страны, ava - список вариантов (элементы списка разделены знаками подчеркивания). Если поиск заканчивается неудачей, последний компонент отбрасывается и поиск повторяется. Для примера рассмотрим следующее выражение:

ResourceBundle bundle = ResourceBundle.getBundle(”Resources”,

new Locale(”fr”,”CH”));

При выполнении приведенного выше фрагмента кода начинается поиск набора ресурсов для Swiss French (французский (Швейцария)). Если регион по умолчанию соответствует Australian English {английский (Австралия)), самая длинная из возможных процедур поиска будет выглядеть следующим образом:

Resources_fr_CH

Resources_fr

Resources_en_AU

Resources_en

Resources

При выполнении метода возвращается первый найденный набор ресурсов. Если ни один набор не найден, генерируется исключение MissingResourceException.

Имея набор ресурсов, вы можете использовать последние три метода класса ResourceBundle для получения информации, чувствительной к региону. Например,
204 Глава 8. MSN

в приведенных ниже выражениях из набора ресурсов извлекаются соответственно объекты Object, String и массив объектов String.

Object object = bundle.getObject(”key_l”);

String string = bundle.getString(”key_2”);

String[] array = bundle.getStringArray(”key_3”);

При вызове каждого из трех методов ему передается ключ. По завершении работы каждый из методов возвращает значение, связанное с ключом, либо, если ключ отсутствует в наборе ресурсов, генерирует исключение MissingResourceException.

Набор ресурсов, возвращаемый методом ResourceBundle .getBundle, может быть либо экземпляром класса ListResourceBundle, либо экземпляром Property-ResourceBundle. В последующих разделах рассказывается о создании и использовании наборов ресурсов этих типов.
Предыдущая << 1 .. 61 62 63 64 65 66 < 67 > 68 69 70 71 72 73 .. 147 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.