JSF 2.0 Custom Component - как получить объект вместо String из компонента - PullRequest
0 голосов
/ 05 июля 2011

Я создаю пользовательский компонент, атрибут которого принимает экземпляр объекта, подобного этому

<hy:bean instance="#{myManagedBean.person}" />

Как мне получить этот экземпляр в моем рендерере?

Я пробовал следующее, ноЯ получаю только версию компонента, преобразованную в строку

Object instance = beanComponent.getAttributes().get( "instance" );

Если я сделаю это ниже, я получу NullpointerException

//expecting "#{myManagedBean.person}" which i can then evaluate
String instance = beanComponent.getInstance(); 

, это определение getInstance () в BeanComponent

public String getInstance()
{
   return ( String ) getStateHelper().get( PropertyKeys.instance );
}

public void setInstance( String instance )
{
    getStateHelper().put( PropertyKeys.instance, instance );
}

Я заметил, что Сеттер никогда не вызывается.

Есть идеи, как я могу получить Объект # {myManagedBean.person} для самоанализа?

1 Ответ

0 голосов
/ 05 июля 2011
Object instance = beanComponent.getValueExpression("instance").
                    getValue(context.getELContext());

Благодаря этому ответу Значение пользовательского объекта пользовательского компонента

...