| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Velocity, доступ к переменой зная её имя, как ? |
| Автор: Intorion 11.5.2008, 14:17 |
| Чтото я не могу найти решение такой проблемы: как зная имя переменой получить её значение из VelocityContext ? В velocity передаётся мап данных, строка-значение, но дело в том, что ключ в мапе генерится автоматически(в зависимости от количество доступных переводов страницы), и надо пробежаться по списку доступных языков(2х значное значение) и выдать все переменые с определёным префиксом и идентификатором языка, переменая выглядит примерно так: name.ru где ru надо изменить. В ручную вбить все значения в велосити не получится, так как кроме языка есть ещё и идентификаторы из базы(очень много) Так просто написать $name.$language не получается. Как это сделать ? |
| Автор: Stampede 12.5.2008, 22:14 | ||
| Intorion, на наше щастье, в Velocity подобные извраты реализуются достаточно легко путем написания собственных компонент, что позволяет задействовать всю объектно-ориентированную мощу языка Java. В твоем случае для переключения между языками вывода проще всего будет расширить класс VelocityContext так, чтобы он добавлял к имени переменной заранее определенный постфикс целевого языка, примерно вот так:
Может я и не совсем понял твою задачу, и мой вариант - это не совсем то, что тебе нужно, но идею, я надеюсь, ты уловил, и подрихтовать под свои нужды теперь сможешь самостоятельно. |