【发布时间】:2011-07-05 07:54:29
【问题描述】:
我正在创建一个自定义组件,其属性接受一个对象的实例 像这样
<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} 的对象进行自省吗?
【问题讨论】:
-
我觉得你应该尝试提取值绑定而不是值本身。
标签: java jsf-2 custom-component