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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> JSF: вывести свойство UIComponent'а 
:(
    Опции темы
leniviy
Дата 24.11.2010, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 1
Всего: 5



Как с помощью EL или какого-нибудь тега получить доступ к объекту типа UIComponent, зная его id? 
Например, у javax.faces.component.html.HtmlInputText есть свойство "label". Так, ясное дело, не работает:
Код

<h:inputText id="abc" label="blah"/><br/>
abc.label: #{abc.label}<br/>

Не хочу создавать для этого кастомный компонент/тег.

PM MAIL   Вверх
leniviy
Дата 24.11.2010, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 1
Всего: 5



Код

public class ComponentFinder extends UIComponentBase {
...
    protected void registerVar() {
        String sval = value.toString();
        UIComponent otherComponent = findComponent(sval);
        if (otherComponent == null)
        {
            UIComponent parent = getParent();
            while (parent != null) {
                otherComponent = parent.findComponent(sval);
            }
        }
        if (otherComponent != null) {
            FacesContext context = getFacesContext();
            ExpressionFactory factory = context.getApplication().getExpressionFactory();
            VariableMapper vm = getFacesContext().getELContext().getVariableMapper();
            vm.setVariable(getName(), factory.createValueExpression(otherComponent, otherComponent.getClass()));
        }
            
    }
    
    @Override
    public void setParent(UIComponent parent)
    {
        super.setParent(parent);
        if (name != null && value != null)
            registerVar();
    }
}


Код

<h:inputText id="abc" label="blah"/><br/>
x<foo:componentFinder name="myvar" value="abc"/>x<br/>
myvar: #{myvar}<br/>


результат:
Код

xx
myvar: org.richfaces.component.html.HtmlInputText@1d41dc3



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

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

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


 




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


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

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