![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Zamuta |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 18.1.2006 Репутация: 4 Всего: 6 |
Всем здрасьте...
Как доставать ресурсы из bundle.key я уже понял, а если нужно в java коде указать какое значение выводить, то как это записать? Например String text="#{var.key}" не проходит...... -------------------- Thank you opensource. |
|||
|
||||
tux |
|
||||||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 74 Всего: 132 |
Тогда придется дергать значения из properties-файла самому:
Или примерно также из ресурса используя
Веб-фреймворки могу располагать своими средствами для чтения пропертей, в любом случае они делают это точно также. |
||||||
|
|||||||
Maksym |
|
||||
![]() . ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 19.8.2005 Где: Odessa, Black Sea Репутация: 24 Всего: 62 |
Например, для jsf это можно сделать с помощью такого утилитного метода:
|
||||
|
|||||
Zamuta |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 18.1.2006 Репутация: 4 Всего: 6 |
А вообще, если сервер получает от браузера, например локаль "ru", то страница автоматически переключиться на эту локаль? Я имею в виду у java существуют такие встроенные механизмы или их нужно писать самому, например определение по сообщению о локали от браузера или по ip адресу....
-------------------- Thank you opensource. |
|||
|
||||
y3u |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 9.9.2006 Где: Москва Репутация: 7 Всего: 13 |
есть специальные документированые способы именования файлов *.properties, чтобы доставать по локали автоматически нужный бандл. А саму локаль можно всегда достать из реквеста, если надо. Если надо каким либо еще способом ее сетапить, незавсимо от браузера, скажем, по выбору пользователя в его профайле, можно использовать ThreadLocal... Вообще, имеет смысл полчитать в инете на тему локализации приложений статейки, их сейчас много развелось. В официальном тьюториле тоже на эту тему пишут
Это сообщение отредактировал(а) y3u - 17.3.2007, 21:56 -------------------- В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах |
|||
|
||||
Zamuta |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 18.1.2006 Репутация: 4 Всего: 6 |
Хочется небольшого уточнения. В чём разница между context.getViewRoot().getLocale() и request.getLocale() ?
-------------------- Thank you opensource. |
|||
|
||||
y3u |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 9.9.2006 Где: Москва Репутация: 7 Всего: 13 |
достается системная локаль из браузера. Это которая, к примеру, в винде ставится на панели управления в региональных настройках. Ну или которая в браузере настроена, к примеру в мозиле можно руками локальнастроить... лично я не в курсе, посмотри джавадоки -------------------- В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах |
|||
|
||||
Zamuta |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 18.1.2006 Репутация: 4 Всего: 6 |
Во всех примерах которые я нахожу в интернете и в литературе с request и response работают только внутри метода с параметрами RequestServlet request, ServletResponse response, например так:
Теперь небольшое отступление. Локализация. Также в литературе или интернете можно найти примерно вот такой пример работы с локалями (часть кода):
А затем вызываем этот метод и получаем нужный текст. И у меня вопрос, почему нельзя сделать просто так:
-------------------- Thank you opensource. |
||||||
|
|||||||
y3u |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 9.9.2006 Где: Москва Репутация: 7 Всего: 13 |
где именно падает эксцепшен-то? Если getCurrentClassLoader(params), ты туда null передаешь, то приводи код метода, но, судя по твоему коду, он падает по request.getLocale(), т.к. ты написал
Реквест и респонз в сервлет передает вебконтейнер, а ты тут объявляешь переменную, но не инициализируешь ее никак, поэтому она у тебя null, а если у null дергать какие-либо методы, то будет падать NullPointerException... -------------------- В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах |
|||
|
||||
Zamuta |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 18.1.2006 Репутация: 4 Всего: 6 |
Падает на request.getLocale(). С сервлетами никогда не работал, поэтому и спотыкаюсь. Как можно в моём случае просто получить локаль request.getLocale().
-------------------- Thank you opensource. |
|||
|
||||
y3u |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 9.9.2006 Где: Москва Репутация: 7 Всего: 13 |
без кода сказать сложно, я не экстрасенс
![]() ну, во-первых, посмотри, может в твоем классике, если ты наследуешься от чего-нить, присутствует соответствующий метод getRequest() или getServletRequest() или getHttpServletRequest() - что-то в этом роде. Во-вторых, есил не найдешь, либо приведи, таки полный код, либо псмотри во всякого рода контекстах и пр., если используются, может из них как-то можно подцепить реквест... Обычно все дело заканчивается сервлетом и каким нибудь методом doGet(...) или doPost(...), где и реквест и респоз папрметрами приходят -------------------- В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах |
|||
|
||||
Zamuta |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 18.1.2006 Репутация: 4 Всего: 6 |
В том то и дело что я работаю с jsf и как такового сервлетного кода в моих классах нет. А сейчас встал вопрос локализации. Чтобы отобразить страницу на текущем языке юзера нужно получить его локаль.
Привожу пример кода класса отвечающего работу с локалями: класслоадер:
Получатель строки из bundl'a:
Ещё раз повторюсь, реквестов у меня в коде нет, а как с ними работать пока не понял. Пробую так, не бейте сильно ![]()
А потом из этого класса тяну Getlocale.locale, возвращает null.... -------------------- Thank you opensource. |
||||||
|
|||||||
Maksym |
|
|||
![]() . ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 19.8.2005 Где: Odessa, Black Sea Репутация: 24 Всего: 62 |
Это я привел пример для jsf. Taм есть context.getViewRoot().getLocale(). Oтсюда ее берет и jsf resourceBudle механизм. Это сообщение отредактировал(а) Maksym - 20.3.2007, 17:40 |
|||
|
||||
Zamuta |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 18.1.2006 Репутация: 4 Всего: 6 |
Maksym, но из context.getViewRoot().getLocale() мы же не сможем получить локаль установленную в браузере юзера?
-------------------- Thank you opensource. |
|||
|
||||
Maksym |
|
||||
![]() . ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 19.8.2005 Где: Odessa, Black Sea Репутация: 24 Всего: 62 |
Zamuta
Думаю что сможем. Вот, что говорит документация:
то есть исходная локаль во UIViewRoot устанавливается исходя из request'а пользователя (что логично). В дальнейшем она может быть переключена програмно (по кнопочке сменить язык интерфейса, например) |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |