| |
В этой Главе описаны требования по локализации в JavaServer Pages 1.2 (JSP 1.2).
Поддержка платформой Java локализованного содержимого базируется на
универсальном внутреннем представлении текста как символов Unicode 2.0
(ISO010646) и поддержке нескольких кодировок символов в Unicode.
Java Virtual Machine (JVM)/Виртуальная Машина Java
обязана поддерживать кодировки Unicode и Latin-1, но большинство машин
поддерживают гораздо больше кодировок. Кодировки символов, поддерживаемые JVM от Sun,
описаны по адресу:
http://java.sun.com/products/jdk/1.1/docs/guide/intl/encoding.doc.html
JSP-страница использует кодировку символов. Кодировка может быть описана явно
атрибутом
pageEncoding директивы
. По умолчанию кодировка выполняется по атрибуту
page
contentType директивы
, если она имеется, или, в противном случае, устанавливается
ISO-8859-1. ISO-8859-1 известна также как Latin-1.page
Верные имена кодировок символов в JSP 1.2 - те же, что и имена
IANA. Они описаны по адресу:
ftp://venera.isi.edu/in-notes/iana/assignments/character-sets
Атрибут
pageEncoding должен использоваться только тогда, когда кодировка символов JSP-страницы
организована так, что символы
ASCII отображают сами себя. Директива, содержащая атрибут
pageEncoding, должна появляться на JSP-странице как можно раньше.
JSP-контейнер может использовать какую-нибудь зависящую от реализации эвристику
и/или структуру для определения ожидаемой кодировки JSP-страницы и проверки
соответствия атрибута
contentType.
JSP-контейнер вызовет ошибку времени трансляции, если запрошена неподдерживаемая
кодировка символов.
Большинство JSP-страниц написаны так, чтобы отправлять ответ, используя
специфические тип содержимого/content type и кодировку символов. JSP-страница
может использовать атрибут contentType директивы page для обозначения типа
содержимого, предоставляемого в ответ на запросы.
Если используется таким образом, данная страница будет всегда предоставлять
содержимое одного и того же типа.
Если страница определяет, что ответ должен иметь другой тип содержимого, она
должна делать это "раньше", определяя, какая иная JSP-страница или сервлет будет
обрабатывать этот запрос, и направлять запрос другой JSP-странице или сервлету.
Значение TYPE по умолчанию
"text/html", а значение по умолчанию для кодировки символов - ISO-8859-1.
Регистр имён типов содержимого хранится в IANA.
См.:
ftp://venera.isi.edu/in-notes/iana/assignments/media-types/media-types
Атрибут
contentType обязан использоваться только в том случае, если кодировка символов
организована так, что символы
ASCII отображают сами себя, как минимум до тех пор, пока атрибут
contentType не будет найден. Директива, содержащая атрибут contentType, должна
появляться на JSP-странице как можно раньше.
Некоторые JSP-страницы созданы так, что они могут направлять содержимое,
используя различные типы содержимого и кодировки символов, в зависимости от
ввода времени запроса. Эти страницы могут быть организованы как специальные
акции или скриптлеты, которые определяют тип содержимого ответа и предоставляют 'связку'
с другим кодом, реально генерирующим содержимое ответа.
Динамическая установка типа содержимого основана на вызове response.setcontentType().
Этот метод может быть вызван, пока никакого содержимого не было выслано в поток
ответа. Данные высылаются в поток ответа при очистках буфера буферизованных
страниц или при обнаружении первого содержимого (избегая пробелов)
небуферизованных страниц.
Пробел в страницах JSP вводится известным трюком синтаксиса JSP, но более
управляем в JSP-страницах с синтаксисом XML.
Спецификация JSP не предписывает определённого подхода к структурированию
локализованного содержимого, поэтому возможны различные подходы.
Два обычных подхода заключаются в использовании шаблонной taglib и помещения локализованных строк из хранилища ресурсов, либо в
использовании локализованных JSP-страниц. Каждый подход имеет свои преимущества
и недостатки. Некоторые пользователи используют трансформацию
JSP-документов для простого замещения элементов локализованными строками,
обрабатывая таким образом синтаксис JSP без снижения производительности на этапе
прогона. Сочетание этих трёх подходов также имеет определённый смысл.
Есть несколько подходов к наилучшему проведению локализации. Мы ожидаем
появления JSR-052,
стандартной библиотеки тэгов JSP, чтобы адресовать к ней некоторые из этих
вопросов.
|
Закладки на сайте Проследить за страницей |
Created 1996-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |