Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> jsp файл тэгов, вызов статического метода 
V
    Опции темы
Pawl
Дата 24.12.2012, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 649
Регистрация: 22.4.2008
Где: Витебск

Репутация: 3
Всего: 28



Уважаемые форумчане,
Буквально вчера вечером узнал, что есть возможность создавать собственные тэги при помощи jstl.  smile 
Попытался сделать такой тэг для локализации web-приложения, но неудачно, и теперь прошу Вас помочь в моей проблеме. Код кастом-тэга:
Код

<%@ tag language="java" pageEncoding="UTF-8" %>
<%@ tag body-content="empty" %>
<%@ attribute name="key" required="false" type="java.lang.String" %>
<%@ tag import="guest.localization.Messages" %>
<%@ taglib prefix="core" uri="http://java.sun.com/jsp/jstl/core"%>

<core:if test="${key == null}">
    <core:set var="key" value="" />
    <core:if test="${param.cmd == 'add'}">
        <core:set var="key" value="form.reg" />
    </core:if>
    <core:if test="${param.cmd == 'del'}">
        <core:set var="key" value="form.del" />
    </core:if>
    <core:if test="${param.cmd == 'find'}">
        <core:set var="key" value="form.search" />
    </core:if>
</core:if>    
<core:set var="lang" value="${pageContext.request.locale.language}" />
<core:set var="msg" value="${Messages.getMessage(lang, key)}" />
<core:out value="${msg}" />

здесь класс guest.localization.Messages имеет статический метод getMessage(String, String), который, в зависимости от локали в запросе, загружает нужное сообщение из соответствующего проперти-файла. Код этого класса:
Код

package guest.localization;

import java.util.ResourceBundle;
import static java.util.ResourceBundle.getBundle;

public class Messages {
    public static String getMessage(String lang, String key) {
        String path = "guest/localization/messages/";
        ResourceBundle bundle = ("ru".equals(lang)) ? getBundle(path + "ru") :
                getBundle(path + "en");
        return bundle.getString(key);
    }    
}

Когда я подключаю кастом-тэг в jsp-страницу с формой
Код

<%@ taglib prefix = "msg" tagdir="/WEB-INF/tags" %>

выводится просто пустая форма без всяких сообщений. Если я использую для той же цели кастом-тэг на основе tld и классов, все работает. Я подозреваю, что неправильно реализовал вызов метода getMessage, но пока не разобрался, как это должно быть сделано.
Спасибо заранее за помощь!

Это сообщение отредактировал(а) Pawl - 24.12.2012, 10:50


--------------------
В действительности всё совсем не так, как на самом деле
PM MAIL   Вверх
Pawl
Дата 25.12.2012, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 649
Регистрация: 22.4.2008
Где: Витебск

Репутация: 3
Всего: 28



Я смотрю, моя тема вызвала очень сильный резонанс! smile  Чтобы прекратить столь бурное обсуждение, скажу, что решил проблему так. А если серьезно, решение оказалось довольно простым, и первое же осмысленное обращение к гуглу дало положительный результат.


--------------------
В действительности всё совсем не так, как на самом деле
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.1024 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.