Я пытаюсь заменить компонент в представлении, используя PreRenderViewEvent, но он не работает.Замененный компонент по-прежнему отображает.
Вот код, который я использую
CommandButton toRender = ( CommandButton ) ctx.getApplication().
createComponent(
"org.primefaces.component.CommandButton" );
toRender.setAjax( false );
toRender.setLabel( "View" );
toRender.getAttributes().put( "TargetState", State.table );
toRender.setValue( State.table );
if ( getToRender() != null )
{
getChildren().remove( getToRender() );
getToRender().setParent( null );
}
getChildren().add( toRender );
setToRender( toRender );
, а вот геттер и установщик для текущего компонента
public UIComponent getToRender()
{
return ( UIComponent ) getStateHelper().eval( PropertyKeys.toRender,
null );
}
public void setToRender( UIComponent toRender )
{
getStateHelper().put( PropertyKeys.toRender, toRender );
handleAttribute( "toRender", toRender );
}
Любойидеи как мне этого добиться?