JSF 2.0自定义组件 - 如何从Component检索对象而不是String

时间:2011-07-05 07:54:30

标签: java jsf-2 custom-component

我正在创建一个自定义组件,其属性接受一个对象的实例 像这样

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

如何在渲染器中检索此实例?

我尝试了以下操作,但我只获得了转换为字符串

的组件版本
Object instance = beanComponent.getAttributes().get( "instance" );

如果我在下面做,我会得到一个NullpointerException

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

这是BeanComponent

中getInstance()的定义
public String getInstance()
{
   return ( String ) getStateHelper().get( PropertyKeys.instance );
}

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

我发现从未调用过Setter。

知道如何获取#{myManagedBean.person}的对象进行内省吗?

1 个答案:

答案 0 :(得分:0)

Object instance = beanComponent.getValueExpression("instance").
                    getValue(context.getELContext());

感谢这个答案 Custom component user object value